/*
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
*/
$(document).ready(function() {

    $(".click-title").mouseenter( function(    e){
        e.preventDefault();
        this.style.cursor="pointer";
    });
    $(".click-title").mousedown( function(event){
        event.preventDefault();
    });

    // Ugly code while this script is shared among several pages
    try{
        refreshHitsPerSecond(true);
    } catch(e){}
    try{
        refreshResponseTimeOverTime(true);
    } catch(e){}
    try{
        refreshResponseTimePercentiles();
    } catch(e){}
});


var responseTimePercentilesInfos = {
        data: {"result": {"minY": 0.0, "minX": 0.0, "maxY": 2062.0, "series": [{"data": [[0.0, 0.0], [0.1, 0.0], [0.2, 0.0], [0.3, 0.0], [0.4, 0.0], [0.5, 0.0], [0.6, 0.0], [0.7, 0.0], [0.8, 0.0], [0.9, 0.0], [1.0, 0.0], [1.1, 0.0], [1.2, 0.0], [1.3, 0.0], [1.4, 0.0], [1.5, 1.0], [1.6, 1.0], [1.7, 1.0], [1.8, 1.0], [1.9, 1.0], [2.0, 1.0], [2.1, 1.0], [2.2, 1.0], [2.3, 1.0], [2.4, 1.0], [2.5, 1.0], [2.6, 1.0], [2.7, 1.0], [2.8, 1.0], [2.9, 1.0], [3.0, 1.0], [3.1, 1.0], [3.2, 1.0], [3.3, 1.0], [3.4, 1.0], [3.5, 1.0], [3.6, 1.0], [3.7, 1.0], [3.8, 1.0], [3.9, 1.0], [4.0, 1.0], [4.1, 2.0], [4.2, 3.0], [4.3, 7.0], [4.4, 19.0], [4.5, 22.0], [4.6, 24.0], [4.7, 28.0], [4.8, 33.0], [4.9, 37.0], [5.0, 40.0], [5.1, 42.0], [5.2, 44.0], [5.3, 46.0], [5.4, 49.0], [5.5, 51.0], [5.6, 53.0], [5.7, 55.0], [5.8, 57.0], [5.9, 59.0], [6.0, 61.0], [6.1, 64.0], [6.2, 66.0], [6.3, 69.0], [6.4, 72.0], [6.5, 75.0], [6.6, 78.0], [6.7, 81.0], [6.8, 85.0], [6.9, 89.0], [7.0, 93.0], [7.1, 97.0], [7.2, 102.0], [7.3, 107.0], [7.4, 113.0], [7.5, 119.0], [7.6, 126.0], [7.7, 133.0], [7.8, 142.0], [7.9, 151.0], [8.0, 162.0], [8.1, 176.0], [8.2, 193.0], [8.3, 213.0], [8.4, 232.0], [8.5, 247.0], [8.6, 255.0], [8.7, 262.0], [8.8, 268.0], [8.9, 274.0], [9.0, 280.0], [9.1, 287.0], [9.2, 292.0], [9.3, 300.0], [9.4, 307.0], [9.5, 314.0], [9.6, 322.0], [9.7, 331.0], [9.8, 342.0], [9.9, 354.0], [10.0, 367.0], [10.1, 382.0], [10.2, 388.0], [10.3, 391.0], [10.4, 393.0], [10.5, 394.0], [10.6, 396.0], [10.7, 397.0], [10.8, 398.0], [10.9, 399.0], [11.0, 399.0], [11.1, 400.0], [11.2, 401.0], [11.3, 402.0], [11.4, 402.0], [11.5, 403.0], [11.6, 403.0], [11.7, 404.0], [11.8, 405.0], [11.9, 405.0], [12.0, 406.0], [12.1, 407.0], [12.2, 408.0], [12.3, 408.0], [12.4, 409.0], [12.5, 410.0], [12.6, 411.0], [12.7, 411.0], [12.8, 412.0], [12.9, 413.0], [13.0, 414.0], [13.1, 415.0], [13.2, 415.0], [13.3, 416.0], [13.4, 417.0], [13.5, 418.0], [13.6, 418.0], [13.7, 419.0], [13.8, 420.0], [13.9, 420.0], [14.0, 421.0], [14.1, 422.0], [14.2, 423.0], [14.3, 423.0], [14.4, 424.0], [14.5, 425.0], [14.6, 426.0], [14.7, 427.0], [14.8, 428.0], [14.9, 429.0], [15.0, 429.0], [15.1, 430.0], [15.2, 431.0], [15.3, 432.0], [15.4, 433.0], [15.5, 433.0], [15.6, 434.0], [15.7, 435.0], [15.8, 436.0], [15.9, 437.0], [16.0, 438.0], [16.1, 438.0], [16.2, 439.0], [16.3, 440.0], [16.4, 440.0], [16.5, 441.0], [16.6, 442.0], [16.7, 443.0], [16.8, 443.0], [16.9, 444.0], [17.0, 445.0], [17.1, 445.0], [17.2, 446.0], [17.3, 447.0], [17.4, 448.0], [17.5, 448.0], [17.6, 449.0], [17.7, 450.0], [17.8, 450.0], [17.9, 451.0], [18.0, 452.0], [18.1, 453.0], [18.2, 453.0], [18.3, 454.0], [18.4, 455.0], [18.5, 456.0], [18.6, 456.0], [18.7, 457.0], [18.8, 457.0], [18.9, 458.0], [19.0, 459.0], [19.1, 459.0], [19.2, 460.0], [19.3, 460.0], [19.4, 461.0], [19.5, 462.0], [19.6, 462.0], [19.7, 463.0], [19.8, 464.0], [19.9, 464.0], [20.0, 465.0], [20.1, 466.0], [20.2, 467.0], [20.3, 467.0], [20.4, 468.0], [20.5, 469.0], [20.6, 470.0], [20.7, 471.0], [20.8, 472.0], [20.9, 473.0], [21.0, 474.0], [21.1, 475.0], [21.2, 475.0], [21.3, 476.0], [21.4, 477.0], [21.5, 478.0], [21.6, 479.0], [21.7, 480.0], [21.8, 481.0], [21.9, 482.0], [22.0, 483.0], [22.1, 484.0], [22.2, 485.0], [22.3, 486.0], [22.4, 487.0], [22.5, 488.0], [22.6, 489.0], [22.7, 490.0], [22.8, 491.0], [22.9, 492.0], [23.0, 493.0], [23.1, 494.0], [23.2, 496.0], [23.3, 497.0], [23.4, 498.0], [23.5, 499.0], [23.6, 500.0], [23.7, 502.0], [23.8, 503.0], [23.9, 504.0], [24.0, 505.0], [24.1, 507.0], [24.2, 508.0], [24.3, 509.0], [24.4, 510.0], [24.5, 512.0], [24.6, 513.0], [24.7, 514.0], [24.8, 515.0], [24.9, 516.0], [25.0, 518.0], [25.1, 519.0], [25.2, 520.0], [25.3, 522.0], [25.4, 523.0], [25.5, 524.0], [25.6, 526.0], [25.7, 527.0], [25.8, 528.0], [25.9, 529.0], [26.0, 530.0], [26.1, 531.0], [26.2, 532.0], [26.3, 533.0], [26.4, 534.0], [26.5, 534.0], [26.6, 535.0], [26.7, 536.0], [26.8, 536.0], [26.9, 537.0], [27.0, 537.0], [27.1, 538.0], [27.2, 539.0], [27.3, 539.0], [27.4, 540.0], [27.5, 540.0], [27.6, 540.0], [27.7, 541.0], [27.8, 541.0], [27.9, 542.0], [28.0, 542.0], [28.1, 543.0], [28.2, 543.0], [28.3, 544.0], [28.4, 544.0], [28.5, 544.0], [28.6, 545.0], [28.7, 545.0], [28.8, 546.0], [28.9, 546.0], [29.0, 547.0], [29.1, 547.0], [29.2, 547.0], [29.3, 548.0], [29.4, 548.0], [29.5, 548.0], [29.6, 549.0], [29.7, 549.0], [29.8, 549.0], [29.9, 550.0], [30.0, 550.0], [30.1, 550.0], [30.2, 551.0], [30.3, 551.0], [30.4, 552.0], [30.5, 552.0], [30.6, 552.0], [30.7, 552.0], [30.8, 553.0], [30.9, 553.0], [31.0, 553.0], [31.1, 554.0], [31.2, 554.0], [31.3, 554.0], [31.4, 555.0], [31.5, 555.0], [31.6, 555.0], [31.7, 556.0], [31.8, 556.0], [31.9, 556.0], [32.0, 557.0], [32.1, 557.0], [32.2, 557.0], [32.3, 558.0], [32.4, 558.0], [32.5, 558.0], [32.6, 559.0], [32.7, 559.0], [32.8, 559.0], [32.9, 559.0], [33.0, 560.0], [33.1, 560.0], [33.2, 560.0], [33.3, 561.0], [33.4, 561.0], [33.5, 561.0], [33.6, 562.0], [33.7, 562.0], [33.8, 562.0], [33.9, 563.0], [34.0, 563.0], [34.1, 563.0], [34.2, 563.0], [34.3, 564.0], [34.4, 564.0], [34.5, 564.0], [34.6, 565.0], [34.7, 565.0], [34.8, 565.0], [34.9, 566.0], [35.0, 566.0], [35.1, 566.0], [35.2, 566.0], [35.3, 567.0], [35.4, 567.0], [35.5, 567.0], [35.6, 568.0], [35.7, 568.0], [35.8, 568.0], [35.9, 568.0], [36.0, 569.0], [36.1, 569.0], [36.2, 569.0], [36.3, 570.0], [36.4, 570.0], [36.5, 570.0], [36.6, 571.0], [36.7, 571.0], [36.8, 571.0], [36.9, 571.0], [37.0, 572.0], [37.1, 572.0], [37.2, 572.0], [37.3, 573.0], [37.4, 573.0], [37.5, 573.0], [37.6, 573.0], [37.7, 574.0], [37.8, 574.0], [37.9, 574.0], [38.0, 574.0], [38.1, 575.0], [38.2, 575.0], [38.3, 575.0], [38.4, 576.0], [38.5, 576.0], [38.6, 576.0], [38.7, 577.0], [38.8, 577.0], [38.9, 577.0], [39.0, 577.0], [39.1, 578.0], [39.2, 578.0], [39.3, 578.0], [39.4, 579.0], [39.5, 579.0], [39.6, 579.0], [39.7, 580.0], [39.8, 580.0], [39.9, 580.0], [40.0, 580.0], [40.1, 581.0], [40.2, 581.0], [40.3, 581.0], [40.4, 582.0], [40.5, 582.0], [40.6, 582.0], [40.7, 582.0], [40.8, 583.0], [40.9, 583.0], [41.0, 583.0], [41.1, 584.0], [41.2, 584.0], [41.3, 584.0], [41.4, 585.0], [41.5, 585.0], [41.6, 585.0], [41.7, 585.0], [41.8, 586.0], [41.9, 586.0], [42.0, 586.0], [42.1, 587.0], [42.2, 587.0], [42.3, 587.0], [42.4, 588.0], [42.5, 588.0], [42.6, 588.0], [42.7, 589.0], [42.8, 589.0], [42.9, 589.0], [43.0, 589.0], [43.1, 590.0], [43.2, 590.0], [43.3, 590.0], [43.4, 591.0], [43.5, 591.0], [43.6, 591.0], [43.7, 591.0], [43.8, 592.0], [43.9, 592.0], [44.0, 592.0], [44.1, 593.0], [44.2, 593.0], [44.3, 593.0], [44.4, 593.0], [44.5, 594.0], [44.6, 594.0], [44.7, 594.0], [44.8, 595.0], [44.9, 595.0], [45.0, 595.0], [45.1, 595.0], [45.2, 596.0], [45.3, 596.0], [45.4, 596.0], [45.5, 597.0], [45.6, 597.0], [45.7, 597.0], [45.8, 597.0], [45.9, 598.0], [46.0, 598.0], [46.1, 598.0], [46.2, 598.0], [46.3, 599.0], [46.4, 599.0], [46.5, 599.0], [46.6, 600.0], [46.7, 600.0], [46.8, 600.0], [46.9, 600.0], [47.0, 601.0], [47.1, 601.0], [47.2, 601.0], [47.3, 601.0], [47.4, 602.0], [47.5, 602.0], [47.6, 602.0], [47.7, 603.0], [47.8, 603.0], [47.9, 603.0], [48.0, 603.0], [48.1, 604.0], [48.2, 604.0], [48.3, 604.0], [48.4, 605.0], [48.5, 605.0], [48.6, 605.0], [48.7, 605.0], [48.8, 606.0], [48.9, 606.0], [49.0, 606.0], [49.1, 607.0], [49.2, 607.0], [49.3, 607.0], [49.4, 607.0], [49.5, 608.0], [49.6, 608.0], [49.7, 608.0], [49.8, 608.0], [49.9, 609.0], [50.0, 609.0], [50.1, 609.0], [50.2, 609.0], [50.3, 610.0], [50.4, 610.0], [50.5, 610.0], [50.6, 611.0], [50.7, 611.0], [50.8, 611.0], [50.9, 611.0], [51.0, 612.0], [51.1, 612.0], [51.2, 612.0], [51.3, 612.0], [51.4, 613.0], [51.5, 613.0], [51.6, 613.0], [51.7, 614.0], [51.8, 614.0], [51.9, 614.0], [52.0, 614.0], [52.1, 615.0], [52.2, 615.0], [52.3, 615.0], [52.4, 615.0], [52.5, 616.0], [52.6, 616.0], [52.7, 616.0], [52.8, 616.0], [52.9, 617.0], [53.0, 617.0], [53.1, 617.0], [53.2, 617.0], [53.3, 618.0], [53.4, 618.0], [53.5, 618.0], [53.6, 618.0], [53.7, 619.0], [53.8, 619.0], [53.9, 619.0], [54.0, 620.0], [54.1, 620.0], [54.2, 620.0], [54.3, 620.0], [54.4, 621.0], [54.5, 621.0], [54.6, 621.0], [54.7, 621.0], [54.8, 622.0], [54.9, 622.0], [55.0, 622.0], [55.1, 622.0], [55.2, 623.0], [55.3, 623.0], [55.4, 623.0], [55.5, 623.0], [55.6, 624.0], [55.7, 624.0], [55.8, 624.0], [55.9, 625.0], [56.0, 625.0], [56.1, 625.0], [56.2, 625.0], [56.3, 626.0], [56.4, 626.0], [56.5, 626.0], [56.6, 626.0], [56.7, 627.0], [56.8, 627.0], [56.9, 627.0], [57.0, 627.0], [57.1, 628.0], [57.2, 628.0], [57.3, 628.0], [57.4, 628.0], [57.5, 629.0], [57.6, 629.0], [57.7, 629.0], [57.8, 630.0], [57.9, 630.0], [58.0, 630.0], [58.1, 630.0], [58.2, 631.0], [58.3, 631.0], [58.4, 631.0], [58.5, 632.0], [58.6, 632.0], [58.7, 632.0], [58.8, 632.0], [58.9, 633.0], [59.0, 633.0], [59.1, 633.0], [59.2, 633.0], [59.3, 634.0], [59.4, 634.0], [59.5, 634.0], [59.6, 635.0], [59.7, 635.0], [59.8, 635.0], [59.9, 635.0], [60.0, 636.0], [60.1, 636.0], [60.2, 636.0], [60.3, 637.0], [60.4, 637.0], [60.5, 637.0], [60.6, 637.0], [60.7, 638.0], [60.8, 638.0], [60.9, 638.0], [61.0, 639.0], [61.1, 639.0], [61.2, 639.0], [61.3, 640.0], [61.4, 640.0], [61.5, 640.0], [61.6, 640.0], [61.7, 641.0], [61.8, 641.0], [61.9, 641.0], [62.0, 642.0], [62.1, 642.0], [62.2, 642.0], [62.3, 642.0], [62.4, 643.0], [62.5, 643.0], [62.6, 643.0], [62.7, 643.0], [62.8, 644.0], [62.9, 644.0], [63.0, 644.0], [63.1, 645.0], [63.2, 645.0], [63.3, 645.0], [63.4, 645.0], [63.5, 646.0], [63.6, 646.0], [63.7, 646.0], [63.8, 647.0], [63.9, 647.0], [64.0, 647.0], [64.1, 647.0], [64.2, 648.0], [64.3, 648.0], [64.4, 648.0], [64.5, 648.0], [64.6, 649.0], [64.7, 649.0], [64.8, 649.0], [64.9, 650.0], [65.0, 650.0], [65.1, 650.0], [65.2, 651.0], [65.3, 651.0], [65.4, 651.0], [65.5, 651.0], [65.6, 652.0], [65.7, 652.0], [65.8, 652.0], [65.9, 653.0], [66.0, 653.0], [66.1, 653.0], [66.2, 653.0], [66.3, 654.0], [66.4, 654.0], [66.5, 654.0], [66.6, 655.0], [66.7, 655.0], [66.8, 655.0], [66.9, 656.0], [67.0, 656.0], [67.1, 656.0], [67.2, 656.0], [67.3, 657.0], [67.4, 657.0], [67.5, 657.0], [67.6, 658.0], [67.7, 658.0], [67.8, 658.0], [67.9, 659.0], [68.0, 659.0], [68.1, 659.0], [68.2, 660.0], [68.3, 660.0], [68.4, 660.0], [68.5, 661.0], [68.6, 661.0], [68.7, 661.0], [68.8, 661.0], [68.9, 662.0], [69.0, 662.0], [69.1, 662.0], [69.2, 663.0], [69.3, 663.0], [69.4, 663.0], [69.5, 664.0], [69.6, 664.0], [69.7, 664.0], [69.8, 665.0], [69.9, 665.0], [70.0, 665.0], [70.1, 666.0], [70.2, 666.0], [70.3, 666.0], [70.4, 667.0], [70.5, 667.0], [70.6, 667.0], [70.7, 667.0], [70.8, 668.0], [70.9, 668.0], [71.0, 668.0], [71.1, 669.0], [71.2, 669.0], [71.3, 669.0], [71.4, 670.0], [71.5, 670.0], [71.6, 670.0], [71.7, 671.0], [71.8, 671.0], [71.9, 671.0], [72.0, 672.0], [72.1, 672.0], [72.2, 672.0], [72.3, 673.0], [72.4, 673.0], [72.5, 673.0], [72.6, 674.0], [72.7, 674.0], [72.8, 674.0], [72.9, 675.0], [73.0, 675.0], [73.1, 675.0], [73.2, 676.0], [73.3, 676.0], [73.4, 676.0], [73.5, 677.0], [73.6, 677.0], [73.7, 677.0], [73.8, 678.0], [73.9, 678.0], [74.0, 678.0], [74.1, 679.0], [74.2, 679.0], [74.3, 679.0], [74.4, 680.0], [74.5, 680.0], [74.6, 680.0], [74.7, 681.0], [74.8, 681.0], [74.9, 681.0], [75.0, 682.0], [75.1, 682.0], [75.2, 682.0], [75.3, 683.0], [75.4, 683.0], [75.5, 684.0], [75.6, 684.0], [75.7, 684.0], [75.8, 685.0], [75.9, 685.0], [76.0, 685.0], [76.1, 686.0], [76.2, 686.0], [76.3, 686.0], [76.4, 687.0], [76.5, 687.0], [76.6, 688.0], [76.7, 688.0], [76.8, 688.0], [76.9, 689.0], [77.0, 689.0], [77.1, 689.0], [77.2, 690.0], [77.3, 690.0], [77.4, 691.0], [77.5, 691.0], [77.6, 691.0], [77.7, 692.0], [77.8, 692.0], [77.9, 692.0], [78.0, 693.0], [78.1, 693.0], [78.2, 694.0], [78.3, 694.0], [78.4, 694.0], [78.5, 695.0], [78.6, 695.0], [78.7, 695.0], [78.8, 696.0], [78.9, 696.0], [79.0, 697.0], [79.1, 697.0], [79.2, 697.0], [79.3, 698.0], [79.4, 698.0], [79.5, 699.0], [79.6, 699.0], [79.7, 699.0], [79.8, 700.0], [79.9, 700.0], [80.0, 701.0], [80.1, 701.0], [80.2, 702.0], [80.3, 702.0], [80.4, 702.0], [80.5, 703.0], [80.6, 703.0], [80.7, 704.0], [80.8, 704.0], [80.9, 705.0], [81.0, 705.0], [81.1, 705.0], [81.2, 706.0], [81.3, 706.0], [81.4, 707.0], [81.5, 707.0], [81.6, 708.0], [81.7, 708.0], [81.8, 709.0], [81.9, 709.0], [82.0, 709.0], [82.1, 710.0], [82.2, 710.0], [82.3, 711.0], [82.4, 711.0], [82.5, 712.0], [82.6, 712.0], [82.7, 713.0], [82.8, 713.0], [82.9, 713.0], [83.0, 714.0], [83.1, 714.0], [83.2, 715.0], [83.3, 715.0], [83.4, 716.0], [83.5, 716.0], [83.6, 717.0], [83.7, 717.0], [83.8, 718.0], [83.9, 718.0], [84.0, 719.0], [84.1, 719.0], [84.2, 720.0], [84.3, 720.0], [84.4, 721.0], [84.5, 721.0], [84.6, 722.0], [84.7, 722.0], [84.8, 723.0], [84.9, 723.0], [85.0, 724.0], [85.1, 724.0], [85.2, 725.0], [85.3, 725.0], [85.4, 726.0], [85.5, 726.0], [85.6, 727.0], [85.7, 727.0], [85.8, 728.0], [85.9, 728.0], [86.0, 729.0], [86.1, 729.0], [86.2, 730.0], [86.3, 731.0], [86.4, 731.0], [86.5, 732.0], [86.6, 732.0], [86.7, 733.0], [86.8, 733.0], [86.9, 734.0], [87.0, 734.0], [87.1, 735.0], [87.2, 736.0], [87.3, 736.0], [87.4, 737.0], [87.5, 737.0], [87.6, 738.0], [87.7, 739.0], [87.8, 739.0], [87.9, 740.0], [88.0, 741.0], [88.1, 741.0], [88.2, 742.0], [88.3, 742.0], [88.4, 743.0], [88.5, 744.0], [88.6, 744.0], [88.7, 745.0], [88.8, 746.0], [88.9, 746.0], [89.0, 747.0], [89.1, 748.0], [89.2, 749.0], [89.3, 749.0], [89.4, 750.0], [89.5, 751.0], [89.6, 751.0], [89.7, 752.0], [89.8, 753.0], [89.9, 753.0], [90.0, 754.0], [90.1, 755.0], [90.2, 755.0], [90.3, 756.0], [90.4, 757.0], [90.5, 758.0], [90.6, 758.0], [90.7, 759.0], [90.8, 760.0], [90.9, 761.0], [91.0, 762.0], [91.1, 763.0], [91.2, 763.0], [91.3, 764.0], [91.4, 765.0], [91.5, 766.0], [91.6, 767.0], [91.7, 767.0], [91.8, 768.0], [91.9, 769.0], [92.0, 770.0], [92.1, 771.0], [92.2, 772.0], [92.3, 773.0], [92.4, 774.0], [92.5, 775.0], [92.6, 776.0], [92.7, 777.0], [92.8, 778.0], [92.9, 779.0], [93.0, 780.0], [93.1, 781.0], [93.2, 782.0], [93.3, 783.0], [93.4, 784.0], [93.5, 785.0], [93.6, 786.0], [93.7, 787.0], [93.8, 788.0], [93.9, 789.0], [94.0, 791.0], [94.1, 792.0], [94.2, 793.0], [94.3, 794.0], [94.4, 795.0], [94.5, 796.0], [94.6, 798.0], [94.7, 799.0], [94.8, 800.0], [94.9, 802.0], [95.0, 803.0], [95.1, 804.0], [95.2, 806.0], [95.3, 807.0], [95.4, 809.0], [95.5, 810.0], [95.6, 812.0], [95.7, 813.0], [95.8, 815.0], [95.9, 816.0], [96.0, 818.0], [96.1, 820.0], [96.2, 821.0], [96.3, 823.0], [96.4, 825.0], [96.5, 827.0], [96.6, 829.0], [96.7, 831.0], [96.8, 833.0], [96.9, 835.0], [97.0, 837.0], [97.1, 840.0], [97.2, 842.0], [97.3, 845.0], [97.4, 847.0], [97.5, 850.0], [97.6, 853.0], [97.7, 856.0], [97.8, 859.0], [97.9, 862.0], [98.0, 865.0], [98.1, 868.0], [98.2, 872.0], [98.3, 875.0], [98.4, 879.0], [98.5, 884.0], [98.6, 889.0], [98.7, 894.0], [98.8, 899.0], [98.9, 906.0], [99.0, 912.0], [99.1, 920.0], [99.2, 929.0], [99.3, 940.0], [99.4, 952.0], [99.5, 968.0], [99.6, 989.0], [99.7, 1015.0], [99.8, 1067.0], [99.9, 1180.0]], "isOverall": false, "label": "HTTP请求长链接转短链接", "isController": false}], "supportsControllersDiscrimination": true, "maxX": 100.0, "title": "Response Time Percentiles"}},
        getOptions: function() {
            return {
                series: {
                    points: { show: false }
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimePercentiles'
                },
                xaxis: {
                    tickDecimals: 1,
                    axisLabel: "Percentiles",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Percentile value in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : %x.2 percentile was %y ms"
                },
                selection: { mode: "xy" },
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesResponseTimePercentiles"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimesPercentiles"), dataset, options);
            // setup overview
            $.plot($("#overviewResponseTimesPercentiles"), dataset, prepareOverviewOptions(options));
        }
};

/**
 * @param elementId Id of element where we display message
 */
function setEmptyGraph(elementId) {
    $(function() {
        $(elementId).text("No graph series with filter="+seriesFilter);
    });
}

// Response times percentiles
function refreshResponseTimePercentiles() {
    var infos = responseTimePercentilesInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyResponseTimePercentiles");
        return;
    }
    if (isGraph($("#flotResponseTimesPercentiles"))){
        infos.createGraph();
    } else {
        var choiceContainer = $("#choicesResponseTimePercentiles");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimesPercentiles", "#overviewResponseTimesPercentiles");
        $('#bodyResponseTimePercentiles .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
}

var responseTimeDistributionInfos = {
        data: {"result": {"minY": 75.0, "minX": 0.0, "maxY": 1114724.0, "series": [{"data": [[0.0, 240369.0], [600.0, 1114724.0], [700.0, 505032.0], [800.0, 136506.0], [200.0, 35755.0], [900.0, 28357.0], [1000.0, 6708.0], [1100.0, 2277.0], [300.0, 57397.0], [1200.0, 1346.0], [1300.0, 540.0], [1400.0, 261.0], [1500.0, 139.0], [100.0, 36357.0], [400.0, 421037.0], [1600.0, 132.0], [1700.0, 199.0], [1800.0, 161.0], [1900.0, 75.0], [500.0, 774518.0], [2000.0, 99.0]], "isOverall": false, "label": "HTTP请求长链接转短链接", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 100, "maxX": 2000.0, "title": "Response Time Distribution"}},
        getOptions: function() {
            var granularity = this.data.result.granularity;
            return {
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimeDistribution'
                },
                xaxis:{
                    axisLabel: "Response times in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of responses",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                bars : {
                    show: true,
                    barWidth: this.data.result.granularity
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: function(label, xval, yval, flotItem){
                        return yval + " responses for " + label + " were between " + xval + " and " + (xval + granularity) + " ms";
                    }
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimeDistribution"), prepareData(data.result.series, $("#choicesResponseTimeDistribution")), options);
        }

};

// Response time distribution
function refreshResponseTimeDistribution() {
    var infos = responseTimeDistributionInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyResponseTimeDistribution");
        return;
    }
    if (isGraph($("#flotResponseTimeDistribution"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesResponseTimeDistribution");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        $('#footerResponseTimeDistribution .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};


var syntheticResponseTimeDistributionInfos = {
        data: {"result": {"minY": 804.0, "minX": 0.0, "ticks": [[0, "Requests having \nresponse time <= 500ms"], [1, "Requests having \nresponse time > 500ms and <= 1,500ms"], [2, "Requests having \nresponse time > 1,500ms"], [3, "Requests in error"]], "maxY": 2567646.0, "series": [{"data": [[0.0, 793539.0]], "color": "#9ACD32", "isOverall": false, "label": "Requests having \nresponse time <= 500ms", "isController": false}, {"data": [[1.0, 2567646.0]], "color": "yellow", "isOverall": false, "label": "Requests having \nresponse time > 500ms and <= 1,500ms", "isController": false}, {"data": [[2.0, 804.0]], "color": "orange", "isOverall": false, "label": "Requests having \nresponse time > 1,500ms", "isController": false}, {"data": [], "color": "#FF6347", "isOverall": false, "label": "Requests in error", "isController": false}], "supportsControllersDiscrimination": false, "maxX": 2.0, "title": "Synthetic Response Times Distribution"}},
        getOptions: function() {
            return {
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendSyntheticResponseTimeDistribution'
                },
                xaxis:{
                    axisLabel: "Response times ranges",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                    tickLength:0,
                    min:-0.5,
                    max:3.5
                },
                yaxis: {
                    axisLabel: "Number of responses",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                bars : {
                    show: true,
                    align: "center",
                    barWidth: 0.25,
                    fill:.75
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: function(label, xval, yval, flotItem){
                        return yval + " " + label;
                    }
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var options = this.getOptions();
            prepareOptions(options, data);
            options.xaxis.ticks = data.result.ticks;
            $.plot($("#flotSyntheticResponseTimeDistribution"), prepareData(data.result.series, $("#choicesSyntheticResponseTimeDistribution")), options);
        }

};

// Response time distribution
function refreshSyntheticResponseTimeDistribution() {
    var infos = syntheticResponseTimeDistributionInfos;
    prepareSeries(infos.data, true);
    if (isGraph($("#flotSyntheticResponseTimeDistribution"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesSyntheticResponseTimeDistribution");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        $('#footerSyntheticResponseTimeDistribution .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var activeThreadsOverTimeInfos = {
        data: {"result": {"minY": 3180.627909700035, "minX": 1.64865126E12, "maxY": 3200.0, "series": [{"data": [[1.64865138E12, 3200.0], [1.64865186E12, 3180.627909700035], [1.64865168E12, 3200.0], [1.64865126E12, 3200.0], [1.64865174E12, 3200.0], [1.64865156E12, 3200.0], [1.64865162E12, 3200.0], [1.64865144E12, 3200.0], [1.6486515E12, 3200.0], [1.64865132E12, 3200.0], [1.6486518E12, 3200.0]], "isOverall": false, "label": "模拟用户请求", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.64865186E12, "title": "Active Threads Over Time"}},
        getOptions: function() {
            return {
                series: {
                    stack: true,
                    lines: {
                        show: true,
                        fill: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of active threads",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 6,
                    show: true,
                    container: '#legendActiveThreadsOverTime'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                selection: {
                    mode: 'xy'
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : At %x there were %y active threads"
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesActiveThreadsOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotActiveThreadsOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewActiveThreadsOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Active Threads Over Time
function refreshActiveThreadsOverTime(fixTimestamps) {
    var infos = activeThreadsOverTimeInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotActiveThreadsOverTime"))) {
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesActiveThreadsOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotActiveThreadsOverTime", "#overviewActiveThreadsOverTime");
        $('#footerActiveThreadsOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var timeVsThreadsInfos = {
        data: {"result": {"minY": 55.0, "minX": 1.0, "maxY": 1024.0, "series": [{"data": [[2.0, 875.0], [3.0, 1024.0], [4.0, 952.0], [6.0, 714.5], [7.0, 708.0], [8.0, 704.0], [9.0, 947.0], [10.0, 745.0], [11.0, 744.0], [12.0, 757.0], [14.0, 792.5], [15.0, 785.0], [17.0, 794.0], [18.0, 798.0], [19.0, 951.0], [20.0, 807.0], [21.0, 961.0], [22.0, 806.0], [23.0, 816.0], [24.0, 809.0], [26.0, 813.0], [27.0, 824.0], [28.0, 965.0], [30.0, 846.0], [31.0, 860.0], [33.0, 866.0], [32.0, 850.0], [35.0, 925.0], [36.0, 878.0], [39.0, 886.0], [38.0, 882.0], [41.0, 897.0], [40.0, 890.0], [43.0, 908.0], [42.0, 904.0], [45.0, 908.0], [44.0, 993.0], [47.0, 915.0], [46.0, 909.0], [48.0, 910.0], [51.0, 916.0], [50.0, 913.0], [53.0, 914.0], [52.0, 995.0], [55.0, 906.0], [54.0, 912.0], [57.0, 656.5], [59.0, 681.5], [61.0, 796.0], [63.0, 905.0], [67.0, 714.0], [65.0, 712.0], [64.0, 705.5], [71.0, 722.0], [70.0, 915.0], [69.0, 720.0], [68.0, 717.0], [74.0, 746.0], [73.0, 829.5], [79.0, 916.0], [78.0, 753.5], [76.0, 750.5], [83.0, 780.5], [81.0, 760.5], [87.0, 788.0], [85.0, 782.5], [91.0, 802.0], [89.0, 798.0], [88.0, 792.0], [94.0, 802.3333333333334], [99.0, 1011.0], [98.0, 863.5], [96.0, 864.0], [103.0, 812.5], [101.0, 800.0], [100.0, 928.0], [107.0, 822.5], [105.0, 821.5], [111.0, 830.3333333333334], [108.0, 832.0], [115.0, 834.0], [114.0, 833.0], [113.0, 830.0], [112.0, 832.0], [118.0, 836.0], [117.0, 833.0], [116.0, 832.0], [123.0, 848.0], [122.0, 937.0], [120.0, 841.0], [127.0, 851.0], [126.0, 854.5], [124.0, 850.0], [134.0, 885.0], [131.0, 853.0], [143.0, 943.3333333333334], [140.0, 955.0], [138.0, 858.0], [137.0, 898.5], [136.0, 857.0], [150.0, 863.0], [149.0, 862.5], [147.0, 861.0], [146.0, 860.5], [144.0, 856.0], [158.0, 908.0], [156.0, 893.0], [153.0, 866.0], [152.0, 863.5], [167.0, 872.5], [164.0, 1015.0], [163.0, 869.0], [161.0, 922.3333333333334], [175.0, 869.0], [174.0, 869.0], [173.0, 1015.0], [171.0, 873.0], [170.0, 951.0], [169.0, 1004.0], [168.0, 951.0], [183.0, 985.5], [182.0, 953.0], [180.0, 876.0], [179.0, 912.0], [178.0, 872.0], [176.0, 872.0], [191.0, 601.5], [189.0, 853.0], [188.0, 638.0], [187.0, 872.0], [186.0, 955.0], [185.0, 986.0], [199.0, 615.5], [197.0, 613.0], [196.0, 609.0], [195.0, 604.0], [194.0, 606.0], [193.0, 606.0], [206.0, 623.0], [205.0, 622.0], [204.0, 622.0], [203.0, 618.0], [202.0, 618.0], [201.0, 729.0], [215.0, 633.0], [214.0, 839.0], [213.0, 633.5], [211.0, 735.0], [209.0, 629.0], [208.0, 775.0], [222.0, 737.0], [220.0, 925.0], [219.0, 924.0], [218.0, 922.0], [217.0, 779.5], [231.0, 638.5], [229.0, 639.0], [228.0, 640.0], [227.0, 637.0], [226.0, 839.0], [225.0, 866.6666666666666], [239.0, 839.3333333333334], [236.0, 837.0], [235.0, 837.0], [234.0, 836.0], [233.0, 643.0], [247.0, 647.0], [246.0, 645.5], [244.0, 644.0], [243.0, 778.0], [241.0, 641.0], [240.0, 926.0], [255.0, 771.0], [252.0, 837.0], [251.0, 646.5], [249.0, 647.0], [269.0, 911.0], [270.0, 657.0], [268.0, 656.0], [259.0, 647.0], [257.0, 739.0], [267.0, 653.5], [265.0, 647.0], [264.0, 647.0], [263.0, 652.0], [262.0, 646.0], [261.0, 644.5], [286.0, 747.0], [287.0, 667.0], [285.0, 825.0], [283.0, 788.5], [281.0, 823.0], [280.0, 910.0], [279.0, 746.5], [277.0, 668.0], [275.0, 826.0], [274.0, 884.3333333333334], [273.0, 830.0], [302.0, 671.0], [303.0, 671.0], [301.0, 674.0], [300.0, 673.5], [298.0, 671.0], [297.0, 822.5], [296.0, 673.0], [294.0, 670.5], [291.0, 670.0], [290.0, 666.5], [288.0, 667.0], [292.0, 671.0], [318.0, 881.5], [316.0, 820.0], [306.0, 673.0], [305.0, 672.0], [315.0, 747.5], [313.0, 675.0], [312.0, 675.0], [311.0, 673.0], [310.0, 675.0], [309.0, 820.0], [308.0, 745.0], [334.0, 676.0], [335.0, 679.0], [332.0, 676.0], [323.0, 674.0], [322.0, 902.0], [321.0, 675.0], [320.0, 896.0], [331.0, 816.0], [330.0, 677.0], [329.0, 814.0], [328.0, 788.5], [326.0, 674.0], [325.0, 676.0], [324.0, 677.0], [350.0, 672.0], [351.0, 672.0], [349.0, 672.0], [348.0, 676.0], [347.0, 675.0], [346.0, 675.0], [345.0, 675.0], [344.0, 675.0], [343.0, 675.0], [337.0, 679.0], [339.0, 675.0], [338.0, 675.0], [342.0, 675.0], [341.0, 677.0], [365.0, 675.0], [366.0, 677.0], [364.0, 717.3333333333334], [361.0, 674.0], [360.0, 673.0], [358.0, 740.0], [356.0, 674.0], [355.0, 673.0], [353.0, 674.0], [382.0, 669.5], [383.0, 671.0], [380.0, 673.0], [370.0, 674.0], [369.0, 802.0], [368.0, 739.0], [379.0, 676.0], [378.0, 800.0], [377.0, 802.0], [376.0, 799.0], [375.0, 673.0], [374.0, 877.0], [373.0, 672.0], [372.0, 674.0], [387.0, 675.0], [399.0, 680.5], [397.0, 735.0], [395.0, 677.0], [394.0, 675.5], [392.0, 684.0], [391.0, 676.0], [390.0, 676.0], [389.0, 674.5], [386.0, 676.0], [385.0, 675.0], [384.0, 675.0], [413.0, 683.0], [414.0, 682.0], [412.0, 791.0], [403.0, 680.0], [401.0, 736.5], [411.0, 682.0], [410.0, 683.0], [408.0, 682.0], [407.0, 680.0], [406.0, 687.0], [405.0, 682.0], [404.0, 680.0], [430.0, 681.5], [431.0, 683.0], [428.0, 682.0], [419.0, 682.0], [418.0, 736.0], [416.0, 736.5], [427.0, 685.0], [426.0, 686.0], [425.0, 682.0], [424.0, 682.0], [423.0, 683.0], [421.0, 684.0], [420.0, 684.0], [446.0, 682.0], [447.0, 682.0], [445.0, 683.5], [435.0, 682.0], [434.0, 684.0], [432.0, 682.0], [443.0, 683.0], [442.0, 685.0], [441.0, 733.0], [440.0, 783.0], [438.0, 686.0], [437.0, 681.0], [462.0, 771.5], [463.0, 680.0], [461.0, 683.0], [451.0, 683.0], [450.0, 683.0], [449.0, 681.0], [448.0, 683.0], [459.0, 681.0], [458.0, 679.0], [457.0, 681.5], [455.0, 681.0], [454.0, 682.0], [453.0, 682.5], [472.0, 771.0], [477.0, 818.0], [475.0, 681.0], [474.0, 682.0], [473.0, 777.0], [470.0, 777.0], [468.0, 681.0], [467.0, 818.5], [465.0, 775.5], [495.0, 776.5], [494.0, 774.5], [491.0, 774.0], [489.0, 819.0], [487.0, 680.0], [486.0, 680.0], [485.0, 681.0], [484.0, 728.5], [483.0, 727.5], [480.0, 745.3333333333334], [499.0, 922.0], [510.0, 681.0], [509.0, 680.0], [507.0, 727.5], [505.0, 728.0], [503.0, 775.0], [502.0, 727.0], [500.0, 727.0], [498.0, 680.0], [496.0, 681.0], [538.0, 766.5], [542.0, 681.5], [536.0, 682.0], [518.0, 681.0], [514.0, 681.5], [512.0, 680.0], [534.0, 682.0], [530.0, 682.0], [528.0, 774.0], [524.0, 727.5], [522.0, 682.5], [520.0, 682.5], [568.0, 764.0], [572.0, 682.0], [574.0, 822.5], [570.0, 687.0], [562.0, 683.0], [560.0, 683.0], [558.0, 781.5], [550.0, 683.0], [548.0, 769.0], [554.0, 724.5], [552.0, 680.0], [604.0, 677.0], [606.0, 677.0], [602.0, 676.0], [600.0, 677.0], [598.0, 720.5], [596.0, 873.0], [592.0, 679.0], [588.0, 678.0], [582.0, 680.0], [580.0, 680.0], [576.0, 766.0], [584.0, 680.5], [636.0, 716.0], [638.0, 737.0], [634.0, 672.0], [632.0, 715.0], [630.0, 673.0], [628.0, 674.0], [626.0, 759.0], [624.0, 717.5], [622.0, 689.0], [614.0, 717.5], [612.0, 771.5], [610.0, 868.0], [608.0, 717.5], [618.0, 674.0], [668.0, 655.0], [666.0, 741.0], [662.0, 681.0], [656.0, 733.6666666666666], [652.0, 692.0], [650.0, 652.5], [648.0, 693.0], [644.0, 652.0], [642.0, 652.5], [696.0, 653.5], [690.0, 767.0], [700.0, 653.5], [698.0, 694.5], [686.0, 835.0], [676.0, 766.0], [674.0, 655.0], [682.0, 738.0], [694.0, 654.0], [688.0, 653.5], [728.0, 652.0], [730.0, 652.0], [722.0, 692.5], [732.0, 651.0], [708.0, 792.0], [704.0, 652.0], [718.0, 652.0], [716.0, 652.5], [714.0, 653.0], [712.0, 736.0], [724.0, 693.5], [742.0, 651.0], [760.0, 705.0], [764.0, 649.0], [762.0, 735.0], [740.0, 650.5], [748.0, 786.0], [746.0, 786.0], [744.0, 650.0], [752.0, 734.0], [774.0, 786.0], [798.0, 651.3333333333334], [784.0, 692.0], [792.0, 652.0], [772.0, 650.0], [782.0, 652.0], [778.0, 651.0], [776.0, 651.0], [790.0, 697.0], [788.0, 653.0], [828.0, 652.0], [830.0, 777.0], [820.0, 690.5], [816.0, 729.0], [806.0, 651.0], [804.0, 731.0], [814.0, 653.5], [812.0, 652.0], [810.0, 652.0], [808.0, 652.0], [822.0, 652.0], [858.0, 656.0], [850.0, 694.0], [848.0, 652.0], [860.0, 733.0], [838.0, 732.0], [836.0, 714.0], [834.0, 650.0], [832.0, 657.0], [846.0, 652.0], [844.0, 733.0], [842.0, 693.0], [840.0, 692.0], [852.0, 652.0], [868.0, 650.0], [890.0, 649.0], [894.0, 796.0], [880.0, 692.5], [864.0, 733.5], [878.0, 653.0], [876.0, 693.0], [874.0, 736.0], [872.0, 735.0], [886.0, 738.0], [884.0, 737.0], [920.0, 690.5], [922.0, 728.0], [914.0, 648.0], [924.0, 764.0], [926.0, 722.0], [912.0, 649.0], [902.0, 796.6666666666666], [898.0, 649.0], [896.0, 798.0], [910.0, 766.0], [904.0, 819.0], [918.0, 649.0], [954.0, 747.0], [956.0, 647.0], [958.0, 648.0], [944.0, 648.0], [952.0, 648.0], [932.0, 729.0], [930.0, 737.25], [942.0, 647.5], [940.0, 648.0], [948.0, 647.0], [966.0, 647.5], [990.0, 719.5], [986.0, 648.0], [984.0, 647.0], [964.0, 647.0], [974.0, 756.5], [972.0, 648.0], [968.0, 702.5], [982.0, 648.0], [980.0, 684.3333333333334], [976.0, 650.0], [1018.0, 679.0], [1010.0, 756.0], [1008.0, 754.0], [1020.0, 678.5], [1016.0, 699.5], [994.0, 649.0], [1004.0, 752.0], [1002.0, 646.0], [1000.0, 647.0], [1014.0, 648.0], [1012.0, 648.0], [1072.0, 642.0], [1076.0, 642.0], [1084.0, 673.5], [1080.0, 642.0], [1036.0, 676.5], [1028.0, 677.5], [1024.0, 646.0], [1048.0, 643.5], [1068.0, 641.5], [1144.0, 732.0], [1120.0, 640.0], [1088.0, 642.0], [1092.0, 691.5], [1096.0, 643.0], [1112.0, 640.5], [1132.0, 640.0], [1124.0, 695.0], [1200.0, 658.5], [1208.0, 633.0], [1212.0, 719.0], [1204.0, 683.0], [1180.0, 638.0], [1152.0, 694.0], [1176.0, 664.0], [1168.0, 640.0], [1192.0, 635.0], [1264.0, 651.0], [1276.0, 630.0], [1248.0, 688.0], [1268.0, 629.0], [1220.0, 656.0], [1228.0, 632.0], [1244.0, 696.3333333333334], [1240.0, 629.5], [1232.0, 691.5], [1260.0, 629.0], [1256.0, 629.0], [1340.0, 647.0], [1320.0, 626.0], [1336.0, 662.0], [1312.0, 625.0], [1316.0, 641.3333333333334], [1332.0, 625.0], [1328.0, 625.0], [1284.0, 671.0], [1296.0, 641.3333333333334], [1324.0, 627.0], [1396.0, 574.0], [1400.0, 574.0], [1392.0, 574.0], [1344.0, 662.0], [1372.0, 619.0], [1368.0, 729.0], [1388.0, 617.0], [1380.0, 572.0], [1376.0, 575.0], [1416.0, 644.5], [1460.0, 567.0], [1408.0, 573.0], [1448.0, 568.0], [1444.0, 607.0], [1432.0, 571.5], [1428.0, 607.3333333333334], [1424.0, 645.0], [1524.0, 563.0], [1504.0, 601.5], [1508.0, 581.5], [1528.0, 669.0], [1520.0, 658.6666666666666], [1476.0, 567.0], [1472.0, 566.5], [1500.0, 565.5], [1540.0, 563.6666666666666], [1536.0, 636.0], [1576.0, 563.0], [1572.0, 597.75], [1568.0, 562.0], [1656.0, 557.5], [1636.0, 592.0], [1660.0, 568.3333333333334], [1632.0, 575.5], [1652.0, 695.0], [1612.0, 560.0], [1608.0, 585.0], [1604.0, 585.6666666666666], [1628.0, 619.0], [1624.0, 603.6666666666666], [1616.0, 632.0], [1644.0, 558.0], [1724.0, 620.0], [1720.0, 555.0], [1708.0, 567.3333333333334], [1704.0, 600.6666666666666], [1664.0, 599.25], [1668.0, 557.0], [1672.0, 557.0], [1692.0, 587.0], [1680.0, 588.0], [1780.0, 590.0], [1784.0, 622.5], [1740.0, 585.0], [1736.0, 618.0], [1728.0, 570.0], [1772.0, 574.3333333333334], [1764.0, 586.0], [1752.0, 618.0], [1748.0, 553.0], [1852.0, 564.5], [1824.0, 545.0], [1848.0, 595.5], [1816.0, 546.5], [1812.0, 569.6666666666666], [1808.0, 570.0], [1836.0, 566.5], [1828.0, 545.0], [1864.0, 648.0], [1908.0, 538.0], [1860.0, 557.0], [1856.0, 585.0], [1900.0, 551.3333333333334], [1896.0, 596.6666666666666], [1892.0, 561.6666666666666], [1880.0, 574.0], [1876.0, 578.75], [1928.0, 538.5], [1968.0, 537.0], [1924.0, 639.0], [1920.0, 550.0], [1956.0, 556.0], [1944.0, 606.5], [1940.0, 573.0], [1936.0, 606.0], [2036.0, 531.0], [2016.0, 532.0], [2020.0, 551.0], [2024.0, 567.5], [2032.0, 612.5], [1996.0, 535.0], [2012.0, 551.0], [2000.0, 569.5], [2160.0, 554.0], [2112.0, 526.0], [2120.0, 527.0], [2128.0, 557.5], [2144.0, 554.0], [2072.0, 529.3333333333334], [2064.0, 530.0], [2048.0, 563.6666666666666], [2104.0, 528.0], [2096.0, 567.25], [2088.0, 594.0], [2080.0, 529.0], [2272.0, 517.0], [2256.0, 540.3333333333334], [2248.0, 519.0], [2264.0, 551.5], [2296.0, 567.0], [2176.0, 537.5], [2184.0, 542.6666666666666], [2200.0, 555.0], [2224.0, 587.0], [2216.0, 554.0], [2208.0, 568.0], [2424.0, 549.0], [2400.0, 521.3333333333334], [2320.0, 570.6666666666666], [2328.0, 604.0], [2360.0, 546.5], [2344.0, 515.0], [2536.0, 501.5], [2504.0, 251.5], [2496.0, 533.0], [2512.0, 533.5], [2552.0, 537.8], [2440.0, 523.0], [2432.0, 509.5], [2480.0, 314.5], [2472.0, 506.5], [2464.0, 520.5], [2664.0, 505.5], [2624.0, 505.0], [2680.0, 491.0], [2640.0, 508.0], [2648.0, 494.5], [2656.0, 493.0], [2568.0, 498.0], [2584.0, 507.6666666666667], [2616.0, 519.2], [2608.0, 545.2], [2600.0, 579.0], [2752.0, 127.0], [2800.0, 495.1666666666667], [2768.0, 558.75], [2792.0, 493.5], [2688.0, 545.3333333333334], [2696.0, 487.0], [2704.0, 541.0], [2824.0, 469.0], [2912.0, 470.0], [2920.0, 511.75], [2880.0, 462.5], [2888.0, 532.5], [2904.0, 491.0], [2816.0, 493.0], [2840.0, 502.0], [2872.0, 498.5], [2864.0, 490.5], [2856.0, 478.25], [3056.0, 457.4285714285714], [3064.0, 477.16666666666663], [3008.0, 447.0], [3016.0, 447.0], [3024.0, 445.0], [3048.0, 491.0], [2944.0, 452.0], [2960.0, 480.0], [2968.0, 509.0], [3000.0, 448.0], [2992.0, 355.57142857142856], [2976.0, 449.5], [3192.0, 389.08695652173907], [3184.0, 406.13043478260863], [3136.0, 420.0], [3144.0, 385.0], [3152.0, 416.0], [3160.0, 413.6363636363637], [3176.0, 404.4090909090908], [3168.0, 404.69230769230774], [3072.0, 487.0], [3080.0, 446.0], [3088.0, 432.5], [3096.0, 443.5], [3128.0, 460.0], [3120.0, 379.3333333333333], [3112.0, 451.31250000000006], [3104.0, 454.0], [3200.0, 569.2196879823582], [2161.0, 555.5], [2137.0, 525.0], [2153.0, 569.5], [2057.0, 534.0], [2065.0, 562.5], [2105.0, 559.0], [2089.0, 625.0], [2281.0, 517.0], [2201.0, 614.0], [2209.0, 522.0], [2265.0, 519.0], [2409.0, 550.0], [2425.0, 512.0], [2369.0, 558.0], [2377.0, 511.0], [2393.0, 511.0], [2313.0, 549.5], [2361.0, 578.0], [2353.0, 514.0], [2345.0, 513.0], [2337.0, 563.5], [2553.0, 500.0], [2545.0, 523.5], [2497.0, 501.0], [2513.0, 500.0], [2521.0, 522.6666666666666], [2529.0, 502.0], [2457.0, 534.0], [2449.0, 509.0], [2441.0, 537.0], [2665.0, 520.0], [2681.0, 491.0], [2633.0, 495.0], [2673.0, 492.0], [2657.0, 520.0], [2577.0, 578.0], [2601.0, 526.0], [2593.0, 497.0], [2809.0, 471.0], [2753.0, 497.5], [2761.0, 504.0], [2769.0, 495.3333333333333], [2689.0, 537.0], [2697.0, 488.0], [2705.0, 498.5], [2713.0, 515.3333333333334], [2745.0, 535.0], [2737.0, 542.3333333333334], [2721.0, 516.0], [2921.0, 457.0], [2889.0, 382.0], [2897.0, 488.0], [2905.0, 480.3333333333333], [2913.0, 492.0], [2817.0, 493.5], [2833.0, 467.3333333333333], [2873.0, 465.0], [2857.0, 482.6666666666667], [3049.0, 450.7777777777777], [3025.0, 445.0], [3033.0, 453.0], [3057.0, 451.8333333333333], [3041.0, 443.5], [2945.0, 472.0], [2969.0, 450.0], [2993.0, 478.52941176470586], [2985.0, 489.3333333333333], [3185.0, 425.4], [3193.0, 330.84615384615387], [3137.0, 482.8], [3145.0, 434.5], [3161.0, 414.0], [3177.0, 446.0], [3169.0, 411.6666666666667], [3073.0, 407.57142857142856], [3097.0, 462.6666666666667], [3129.0, 420.5], [3121.0, 423.57142857142856], [3113.0, 427.0], [3105.0, 516.0], [1077.0, 644.0], [1061.0, 674.5], [1033.0, 676.0], [1025.0, 647.0], [1053.0, 675.5], [1045.0, 675.5], [1069.0, 747.0], [1065.0, 643.0], [1057.0, 675.0], [1145.0, 684.0], [1149.0, 674.6666666666666], [1121.0, 639.0], [1125.0, 640.0], [1141.0, 640.0], [1137.0, 703.5], [1101.0, 707.0], [1089.0, 743.0], [1117.0, 677.6666666666666], [1113.0, 697.0], [1109.0, 641.0], [1105.0, 691.0], [1157.0, 638.5], [1201.0, 632.0], [1209.0, 632.0], [1205.0, 632.0], [1153.0, 638.0], [1161.0, 691.0], [1165.0, 656.6666666666666], [1181.0, 638.0], [1177.0, 638.0], [1173.0, 638.0], [1169.0, 689.0], [1189.0, 664.0], [1185.0, 637.5], [1269.0, 628.0], [1277.0, 629.0], [1249.0, 631.0], [1273.0, 681.6666666666666], [1265.0, 628.0], [1229.0, 631.0], [1225.0, 631.0], [1221.0, 655.5], [1217.0, 635.5], [1241.0, 629.0], [1233.0, 630.0], [1253.0, 629.0], [1329.0, 645.5], [1313.0, 666.0], [1337.0, 624.0], [1333.0, 624.0], [1309.0, 627.0], [1281.0, 629.0], [1289.0, 630.0], [1293.0, 629.0], [1301.0, 694.0], [1325.0, 647.0], [1317.0, 627.0], [1405.0, 594.5], [1381.0, 572.0], [1373.0, 596.5], [1349.0, 679.5], [1353.0, 624.0], [1357.0, 647.0], [1369.0, 641.7142857142858], [1385.0, 596.0], [1377.0, 574.0], [1461.0, 671.0], [1465.0, 567.0], [1441.0, 566.5], [1445.0, 568.0], [1457.0, 586.5], [1421.0, 572.0], [1413.0, 623.8], [1425.0, 572.0], [1453.0, 567.0], [1525.0, 668.0], [1529.0, 564.0], [1485.0, 618.5], [1477.0, 579.0], [1517.0, 638.0], [1493.0, 565.5], [1489.0, 618.0], [1597.0, 601.3333333333334], [1593.0, 574.0], [1569.0, 562.0], [1565.0, 650.0], [1537.0, 563.0], [1545.0, 573.0], [1549.0, 564.0], [1557.0, 605.0], [1553.0, 571.3333333333334], [1649.0, 574.5], [1609.0, 573.0], [1601.0, 562.0], [1637.0, 661.0], [1621.0, 640.5], [1617.0, 610.5], [1713.0, 588.5], [1677.0, 577.3333333333334], [1709.0, 555.0], [1701.0, 566.0], [1697.0, 571.5], [1693.0, 572.5], [1689.0, 556.0], [1685.0, 556.0], [1681.0, 589.5], [1777.0, 620.3333333333334], [1769.0, 549.0], [1761.0, 568.0], [1753.0, 568.5], [1749.0, 551.0], [1805.0, 591.6666666666666], [1841.0, 544.5], [1801.0, 607.0], [1797.0, 608.0], [1821.0, 544.5], [1813.0, 620.0], [1809.0, 544.0], [1909.0, 606.0], [1917.0, 538.5], [1905.0, 539.0], [1857.0, 542.5], [1865.0, 543.0], [1869.0, 541.0], [1893.0, 577.0], [1889.0, 540.0], [1973.0, 536.3333333333334], [1981.0, 570.75], [1961.0, 572.0], [1977.0, 535.5], [1969.0, 536.0], [1933.0, 572.6666666666666], [1925.0, 621.5], [1949.0, 571.5], [1941.0, 562.0], [1965.0, 590.0], [1993.0, 535.0], [2045.0, 546.5], [2025.0, 532.0], [2033.0, 532.0], [1985.0, 569.0], [1997.0, 535.0], [2009.0, 565.0], [2005.0, 535.5], [2001.0, 618.5], [2029.0, 565.0], [2170.0, 569.25], [2138.0, 526.0], [2146.0, 524.5], [2074.0, 529.0], [2066.0, 529.0], [2058.0, 565.0], [2082.0, 559.0], [2282.0, 518.0], [2242.0, 554.6666666666666], [2298.0, 517.5], [2290.0, 517.0], [2274.0, 516.0], [2194.0, 542.0], [2186.0, 584.0], [2202.0, 553.0], [2218.0, 566.0], [2410.0, 553.0], [2418.0, 509.0], [2378.0, 512.0], [2386.0, 510.75], [2394.0, 521.6666666666666], [2402.0, 510.0], [2306.0, 582.5], [2314.0, 518.0], [2354.0, 396.0], [2346.0, 530.0], [2338.0, 547.0], [2458.0, 533.0], [2554.0, 500.0], [2506.0, 521.6666666666666], [2530.0, 502.0], [2450.0, 506.0], [2442.0, 538.0], [2490.0, 531.0], [2482.0, 507.0], [2466.0, 505.0], [2658.0, 494.0], [2626.0, 528.6666666666666], [2666.0, 502.0], [2634.0, 509.5], [2642.0, 540.0], [2562.0, 539.5], [2578.0, 511.5], [2586.0, 537.5], [2618.0, 496.0], [2602.0, 535.5], [2594.0, 549.0], [2810.0, 492.8], [2762.0, 529.0], [2770.0, 357.6666666666667], [2778.0, 490.6666666666667], [2802.0, 472.3333333333333], [2786.0, 531.5], [2706.0, 527.5], [2746.0, 532.0], [2730.0, 561.5], [2842.0, 376.0], [2930.0, 467.3333333333333], [2890.0, 479.8], [2938.0, 413.6], [2898.0, 356.6666666666667], [2906.0, 460.0], [2826.0, 469.0], [2874.0, 465.0], [2866.0, 464.6666666666667], [2850.0, 507.5], [3050.0, 468.0], [3018.0, 474.0], [3066.0, 452.5333333333334], [3010.0, 465.6666666666667], [3034.0, 468.0], [3058.0, 449.0], [2946.0, 490.3333333333333], [2962.0, 465.0], [3002.0, 500.0], [2994.0, 448.6666666666667], [2978.0, 310.3333333333333], [3194.0, 55.0], [3138.0, 440.0], [3146.0, 422.1500000000001], [3154.0, 416.5], [3162.0, 434.75], [3186.0, 421.75], [3178.0, 430.7647058823529], [3082.0, 469.8], [3090.0, 431.6666666666667], [3098.0, 465.5], [3130.0, 462.0], [3122.0, 258.5], [3114.0, 419.1], [3106.0, 486.1666666666667], [2163.0, 555.0], [2123.0, 547.0], [2131.0, 524.0], [2139.0, 526.0], [2155.0, 581.0], [2051.0, 540.6666666666666], [2107.0, 547.3333333333334], [2099.0, 528.6666666666666], [2091.0, 558.3333333333334], [2083.0, 528.0], [2291.0, 517.0], [2275.0, 517.0], [2251.0, 563.0], [2259.0, 519.0], [2179.0, 565.6666666666666], [2235.0, 562.25], [2267.0, 551.0], [2427.0, 508.0], [2371.0, 512.0], [2379.0, 547.0], [2395.0, 510.0], [2331.0, 547.6666666666666], [2323.0, 516.0], [2315.0, 548.5], [2307.0, 580.0], [2363.0, 547.0], [2355.0, 546.0], [2339.0, 514.5], [2547.0, 554.0], [2539.0, 537.0], [2499.0, 502.0], [2523.0, 520.6666666666666], [2555.0, 552.0], [2531.0, 502.0], [2451.0, 507.0], [2475.0, 534.0], [2467.0, 533.0], [2675.0, 492.0], [2643.0, 503.6666666666667], [2651.0, 494.0], [2683.0, 515.0], [2667.0, 540.5], [2659.0, 519.5], [2619.0, 544.0], [2611.0, 561.3333333333334], [2803.0, 490.0], [2755.0, 513.3333333333334], [2763.0, 501.0], [2771.0, 500.0], [2779.0, 476.0], [2795.0, 389.5], [2787.0, 475.0], [2691.0, 512.5], [2715.0, 515.6666666666666], [2747.0, 240.5], [2731.0, 508.5], [2939.0, 484.0], [2883.0, 490.3333333333333], [2899.0, 459.0], [2907.0, 459.0], [2923.0, 467.0], [2915.0, 466.75], [2827.0, 469.5], [2835.0, 466.0], [2867.0, 464.0], [2859.0, 465.0], [2851.0, 488.0], [3059.0, 451.0], [3011.0, 502.0], [3051.0, 441.0], [3019.0, 385.0], [3027.0, 463.5], [3067.0, 475.7142857142857], [2955.0, 499.5], [2971.0, 470.0], [3003.0, 475.5], [2995.0, 456.42857142857144], [2987.0, 386.0], [3187.0, 406.0], [3139.0, 418.0], [3147.0, 385.0], [3155.0, 429.50000000000006], [3163.0, 417.77777777777777], [3195.0, 411.0], [3075.0, 435.5], [3083.0, 406.5454545454545], [3099.0, 465.0], [3131.0, 421.5], [3123.0, 421.5], [3115.0, 273.2], [3107.0, 436.0], [543.0, 682.0], [541.0, 771.5], [535.0, 681.0], [531.0, 682.0], [529.0, 682.0], [527.0, 727.0], [525.0, 684.0], [517.0, 712.6666666666666], [551.0, 769.0], [571.0, 683.0], [569.0, 766.0], [567.0, 682.0], [565.0, 764.0], [563.0, 710.6666666666666], [557.0, 683.0], [555.0, 682.0], [547.0, 682.5], [545.0, 683.0], [581.0, 681.0], [605.0, 763.0], [601.0, 678.0], [579.0, 723.5], [577.0, 681.0], [599.0, 678.0], [595.0, 873.5], [593.0, 677.0], [591.0, 721.0], [589.0, 678.0], [587.0, 678.0], [585.0, 678.0], [639.0, 725.5], [633.0, 673.0], [631.0, 673.0], [627.0, 676.0], [625.0, 673.0], [615.0, 675.0], [609.0, 674.0], [671.0, 732.6666666666666], [667.0, 840.0], [665.0, 733.5], [663.0, 654.0], [659.0, 789.3333333333334], [653.0, 653.0], [647.0, 693.0], [641.0, 653.0], [679.0, 656.5], [703.0, 652.6666666666666], [673.0, 733.5], [677.0, 737.0], [685.0, 653.5], [683.0, 737.0], [681.0, 745.5], [693.0, 654.0], [691.0, 796.0], [711.0, 787.0], [733.0, 651.5], [735.0, 649.5], [721.0, 734.0], [707.0, 650.0], [705.0, 653.0], [719.0, 651.0], [713.0, 652.0], [727.0, 693.0], [725.0, 651.0], [739.0, 649.0], [767.0, 694.6666666666666], [763.0, 649.0], [761.0, 733.0], [751.0, 692.0], [737.0, 650.5], [741.0, 653.0], [743.0, 652.0], [749.0, 730.0], [747.0, 690.5], [757.0, 650.5], [755.0, 691.0], [753.0, 650.0], [793.0, 653.0], [785.0, 651.0], [799.0, 728.0], [795.0, 652.0], [775.0, 732.0], [773.0, 651.0], [771.0, 650.5], [769.0, 692.0], [781.0, 651.5], [779.0, 650.0], [777.0, 651.0], [787.0, 691.5], [827.0, 731.0], [831.0, 691.0], [819.0, 652.0], [817.0, 716.0], [825.0, 692.0], [805.0, 733.5], [803.0, 730.0], [801.0, 716.5], [811.0, 729.0], [809.0, 690.5], [823.0, 652.0], [821.0, 652.0], [837.0, 652.0], [861.0, 690.5], [863.0, 774.0], [857.0, 692.0], [833.0, 652.0], [847.0, 652.0], [845.0, 737.0], [843.0, 653.0], [855.0, 650.5], [853.0, 650.5], [889.0, 697.6666666666666], [881.0, 737.0], [895.0, 650.0], [893.0, 721.5], [871.0, 692.5], [869.0, 650.0], [867.0, 650.0], [865.0, 735.0], [877.0, 649.0], [873.0, 736.0], [883.0, 692.5], [899.0, 795.0], [923.0, 728.0], [897.0, 722.5], [911.0, 706.5], [909.0, 650.0], [907.0, 687.3333333333334], [917.0, 707.5], [915.0, 648.0], [933.0, 649.0], [953.0, 648.0], [945.0, 647.0], [935.0, 721.5], [931.0, 648.0], [943.0, 648.0], [939.0, 705.5], [937.0, 705.0], [949.0, 648.0], [947.0, 648.0], [989.0, 650.0], [991.0, 755.0], [963.0, 648.0], [961.0, 647.3333333333334], [975.0, 648.0], [971.0, 702.0], [969.0, 755.0], [977.0, 758.0], [999.0, 648.0], [1021.0, 710.0], [1023.0, 645.0], [1009.0, 648.0], [997.0, 701.5], [995.0, 649.0], [993.0, 649.5], [1005.0, 647.0], [1003.0, 647.0], [1001.0, 754.0], [1013.0, 700.0], [1082.0, 643.0], [1086.0, 693.0], [1058.0, 643.0], [1066.0, 695.0], [1062.0, 642.0], [1078.0, 644.0], [1038.0, 783.0], [1030.0, 647.0], [1054.0, 781.0], [1050.0, 751.5], [1046.0, 709.0], [1042.0, 666.3333333333334], [1070.0, 644.0], [1138.0, 639.0], [1146.0, 638.0], [1126.0, 667.5], [1150.0, 693.0], [1114.0, 641.0], [1094.0, 642.0], [1098.0, 642.0], [1110.0, 640.0], [1106.0, 739.0], [1134.0, 714.5], [1130.0, 690.3333333333334], [1122.0, 640.0], [1202.0, 633.0], [1206.0, 682.0], [1162.0, 638.0], [1154.0, 638.0], [1174.0, 663.5], [1198.0, 633.6666666666666], [1194.0, 635.5], [1190.0, 637.0], [1274.0, 671.0], [1278.0, 629.0], [1270.0, 629.0], [1246.0, 629.5], [1226.0, 681.0], [1230.0, 631.0], [1238.0, 630.3333333333334], [1262.0, 665.5], [1258.0, 652.0], [1334.0, 625.0], [1314.0, 681.5], [1282.0, 630.0], [1310.0, 630.3333333333334], [1302.0, 702.0], [1298.0, 647.5], [1326.0, 627.0], [1322.0, 624.0], [1402.0, 573.0], [1394.0, 574.0], [1362.0, 621.0], [1378.0, 574.6666666666666], [1462.0, 592.6666666666666], [1470.0, 578.6666666666666], [1418.0, 572.0], [1454.0, 566.5], [1450.0, 568.0], [1438.0, 643.75], [1434.0, 571.0], [1430.0, 571.0], [1526.0, 617.0], [1530.0, 564.0], [1534.0, 581.75], [1506.0, 600.5], [1510.0, 597.0], [1522.0, 564.5], [1486.0, 654.5], [1482.0, 590.6666666666666], [1502.0, 599.0], [1498.0, 565.6666666666666], [1518.0, 636.0], [1514.0, 575.3333333333334], [1590.0, 568.0], [1594.0, 562.0], [1586.0, 561.6666666666666], [1542.0, 563.0], [1582.0, 563.5], [1566.0, 562.5], [1562.0, 580.75], [1558.0, 563.0], [1658.0, 589.0], [1634.0, 558.0], [1654.0, 557.0], [1610.0, 663.0], [1642.0, 570.0], [1638.0, 589.5], [1726.0, 575.3333333333334], [1718.0, 555.0], [1706.0, 555.0], [1698.0, 556.5], [1694.0, 556.0], [1666.0, 572.5], [1674.0, 558.0], [1686.0, 556.0], [1790.0, 547.5], [1742.0, 598.0], [1738.0, 584.5], [1734.0, 608.6666666666666], [1774.0, 567.5], [1746.0, 639.0], [1842.0, 543.0], [1854.0, 542.5], [1850.0, 586.0], [1846.0, 614.6666666666666], [1822.0, 589.0], [1802.0, 591.0], [1794.0, 623.0], [1818.0, 606.0], [1814.0, 545.0], [1834.0, 543.5], [1830.0, 544.0], [1906.0, 540.0], [1914.0, 539.0], [1870.0, 542.0], [1898.0, 540.0], [1886.0, 562.0], [1882.0, 540.5], [1878.0, 539.5], [1954.0, 635.0], [1930.0, 572.0], [1962.0, 572.0], [1958.0, 537.5], [1950.0, 607.0], [1946.0, 571.5], [2038.0, 531.5], [2018.0, 532.6666666666666], [2022.0, 533.0], [2042.0, 597.5], [2014.0, 551.0], [1986.0, 552.0], [1990.0, 579.6666666666666], [1994.0, 566.0], [2010.0, 551.0], [2002.0, 536.0], [2030.0, 532.0], [2164.0, 523.0], [2116.0, 477.25], [2140.0, 525.0], [2076.0, 528.0], [2060.0, 529.0], [2084.0, 544.0], [2276.0, 551.0], [2244.0, 552.0], [2292.0, 533.5], [2284.0, 583.0], [2236.0, 558.0], [2180.0, 524.0], [2204.0, 555.0], [2228.0, 557.75], [2220.0, 538.5], [2212.0, 542.3333333333334], [2412.0, 508.5], [2428.0, 509.0], [2372.0, 512.5], [2380.0, 511.0], [2388.0, 602.0], [2364.0, 385.33333333333337], [2316.0, 517.0], [2324.0, 551.0], [2348.0, 513.0], [2540.0, 531.0], [2548.0, 531.0], [2508.0, 571.5], [2516.0, 504.0], [2460.0, 521.0], [2452.0, 536.0], [2444.0, 561.0], [2436.0, 557.5], [2484.0, 544.0], [2468.0, 506.0], [2628.0, 496.0], [2636.0, 494.5], [2620.0, 505.6666666666667], [2564.0, 498.0], [2572.0, 546.6], [2580.0, 510.75], [2604.0, 511.5], [2596.0, 559.3333333333334], [2652.0, 494.0], [2804.0, 472.0], [2812.0, 494.0], [2796.0, 473.0], [2700.0, 496.0], [2708.0, 497.5], [2740.0, 518.4], [2724.0, 523.6666666666666], [2932.0, 473.5], [2884.0, 505.25], [2900.0, 490.0], [2908.0, 459.0], [2924.0, 492.0], [2820.0, 485.0], [2844.0, 501.6666666666667], [2876.0, 461.0], [2868.0, 472.6666666666667], [2860.0, 490.3333333333333], [2852.0, 488.5], [3052.0, 452.77777777777777], [3028.0, 444.0], [3036.0, 389.75], [3060.0, 439.0], [3044.0, 476.6666666666667], [2948.0, 452.0], [2956.0, 452.0], [2964.0, 451.0], [2972.0, 462.4], [3004.0, 446.0], [3188.0, 417.45454545454544], [3180.0, 449.0], [3196.0, 401.0], [3140.0, 447.25], [3148.0, 446.46153846153845], [3156.0, 376.5], [3164.0, 414.5], [3172.0, 460.2], [3076.0, 426.73333333333335], [3084.0, 445.0], [3092.0, 442.5], [3100.0, 429.0], [3132.0, 435.3333333333333], [3124.0, 422.0], [3116.0, 426.0], [3108.0, 462.20000000000005], [2125.0, 589.0], [2133.0, 555.0], [2157.0, 523.0], [2061.0, 597.0], [2077.0, 539.3333333333334], [2069.0, 551.3333333333334], [2101.0, 543.5], [2141.0, 588.0], [2285.0, 558.0], [2301.0, 517.0], [2189.0, 534.0], [2197.0, 538.0], [2205.0, 538.5], [2213.0, 522.0], [2261.0, 518.5], [2421.0, 556.3333333333334], [2413.0, 508.0], [2373.0, 544.5], [2389.0, 565.0], [2429.0, 510.0], [2405.0, 518.0], [2333.0, 515.0], [2317.0, 533.0], [2309.0, 516.0], [2365.0, 530.5], [2357.0, 514.0], [2349.0, 614.5], [2341.0, 548.0], [2557.0, 567.0], [2509.0, 504.0], [2517.0, 541.5], [2525.0, 539.5], [2549.0, 554.0], [2541.0, 500.0], [2533.0, 501.0], [2461.0, 526.0], [2437.0, 536.5], [2493.0, 539.3333333333334], [2477.0, 516.0], [2469.0, 534.0], [2685.0, 549.3333333333334], [2637.0, 522.0], [2645.0, 494.0], [2653.0, 528.6666666666666], [2677.0, 492.0], [2669.0, 493.0], [2581.0, 538.0], [2621.0, 496.0], [2613.0, 526.0], [2805.0, 472.5], [2757.0, 478.5], [2765.0, 496.83333333333337], [2773.0, 391.6666666666667], [2813.0, 491.0], [2789.0, 482.0], [2693.0, 500.0], [2749.0, 417.83333333333337], [2741.0, 534.5], [2725.0, 483.0], [2925.0, 498.0], [2885.0, 506.0], [2941.0, 485.3333333333333], [2893.0, 482.6666666666667], [2917.0, 469.3333333333333], [2837.0, 428.5], [2845.0, 466.5], [2869.0, 490.3333333333333], [2861.0, 320.6], [2853.0, 358.33333333333337], [3061.0, 460.3333333333333], [3053.0, 440.0], [3013.0, 488.0], [3021.0, 446.0], [3037.0, 444.0], [3069.0, 462.0], [3045.0, 453.2], [2949.0, 481.3333333333333], [2965.0, 501.75], [2973.0, 461.3333333333333], [2997.0, 447.0], [2989.0, 449.3333333333333], [2981.0, 465.0], [3189.0, 400.7432432432433], [3141.0, 392.6666666666667], [3149.0, 451.0], [3157.0, 415.5], [3165.0, 215.5], [3197.0, 407.34722222222223], [3173.0, 475.0], [3077.0, 390.5], [3085.0, 433.0], [3093.0, 356.33333333333337], [3101.0, 399.4444444444445], [3133.0, 442.6666666666667], [3125.0, 462.0], [3117.0, 387.90000000000003], [3109.0, 480.0], [1035.0, 750.0], [1079.0, 642.0], [1075.0, 703.6666666666666], [1039.0, 746.0], [1031.0, 647.0], [1027.0, 646.0], [1055.0, 643.0], [1051.0, 643.0], [1043.0, 646.0], [1063.0, 643.0], [1059.0, 780.0], [1139.0, 638.0], [1151.0, 694.0], [1127.0, 640.0], [1143.0, 639.0], [1103.0, 641.5], [1099.0, 643.0], [1095.0, 641.0], [1091.0, 640.0], [1119.0, 640.5], [1107.0, 642.0], [1135.0, 638.0], [1131.0, 638.0], [1211.0, 632.0], [1215.0, 730.0], [1207.0, 632.0], [1183.0, 700.0], [1155.0, 639.0], [1159.0, 638.0], [1167.0, 664.0], [1179.0, 637.5], [1171.0, 663.5], [1195.0, 757.0], [1187.0, 639.0], [1279.0, 629.0], [1251.0, 668.5], [1275.0, 631.0], [1267.0, 673.5], [1223.0, 632.0], [1235.0, 631.0], [1255.0, 675.0], [1287.0, 692.0], [1339.0, 642.5], [1343.0, 646.0], [1331.0, 644.5], [1283.0, 669.0], [1291.0, 694.6666666666666], [1307.0, 626.5], [1303.0, 666.0], [1299.0, 625.0], [1323.0, 646.0], [1319.0, 626.0], [1403.0, 573.0], [1399.0, 573.6666666666666], [1407.0, 594.0], [1347.0, 687.0], [1351.0, 624.0], [1355.0, 641.5], [1359.0, 674.0], [1371.0, 577.0], [1363.0, 623.0], [1391.0, 603.3333333333334], [1387.0, 618.0], [1379.0, 617.0], [1443.0, 714.0], [1447.0, 567.5], [1467.0, 567.0], [1463.0, 672.0], [1419.0, 391.0], [1415.0, 572.0], [1439.0, 570.0], [1455.0, 606.0], [1451.0, 607.0], [1479.0, 584.5], [1503.0, 635.0], [1487.0, 669.0], [1475.0, 571.0], [1515.0, 565.0], [1511.0, 598.0], [1495.0, 601.5], [1491.0, 566.0], [1599.0, 597.5], [1591.0, 562.0], [1583.0, 561.5], [1579.0, 570.6666666666666], [1575.0, 611.0], [1547.0, 563.0], [1551.0, 564.0], [1615.0, 574.0], [1651.0, 576.5], [1611.0, 560.0], [1607.0, 574.0], [1603.0, 586.0], [1647.0, 569.3333333333334], [1639.0, 559.0], [1635.0, 590.0], [1631.0, 575.0], [1715.0, 555.0], [1723.0, 569.5], [1691.0, 587.0], [1687.0, 557.5], [1683.0, 579.6666666666666], [1787.0, 609.0], [1791.0, 547.0], [1779.0, 569.5], [1767.0, 619.0], [1763.0, 655.0], [1759.0, 603.5], [1731.0, 584.6666666666666], [1755.0, 584.0], [1843.0, 616.0], [1851.0, 544.0], [1799.0, 547.5], [1795.0, 594.0], [1839.0, 593.6666666666666], [1835.0, 588.0], [1831.0, 544.5], [1827.0, 544.3333333333334], [1823.0, 546.0], [1911.0, 583.6666666666666], [1915.0, 551.6666666666666], [1907.0, 576.0], [1887.0, 538.0], [1863.0, 610.0], [1867.0, 542.0], [1871.0, 542.0], [1883.0, 540.0], [1875.0, 581.0], [1903.0, 586.0], [1971.0, 537.0], [1983.0, 535.0], [1955.0, 604.0], [1959.0, 537.0], [1975.0, 552.5], [1935.0, 538.0], [1927.0, 575.0], [1923.0, 538.5], [1951.0, 539.0], [1943.0, 538.0], [1939.0, 539.0], [1963.0, 606.0], [2043.0, 532.0], [2027.0, 533.5], [2035.0, 548.0], [1987.0, 535.0], [1991.0, 535.0], [2007.0, 549.5], [2003.0, 566.0], [2166.0, 523.0], [2174.0, 560.25], [2118.0, 526.5], [2126.0, 524.5], [2158.0, 524.0], [2150.0, 547.25], [2078.0, 528.0], [2062.0, 529.0], [2054.0, 561.3333333333334], [2110.0, 529.0], [2102.0, 528.0], [2302.0, 560.0], [2294.0, 529.0], [2246.0, 519.5], [2262.0, 519.0], [2286.0, 518.0], [2198.0, 522.0], [2222.0, 538.5], [2406.0, 512.0], [2414.0, 570.5], [2430.0, 510.0], [2382.0, 510.0], [2390.0, 511.0], [2398.0, 561.6666666666666], [2310.0, 550.0], [2334.0, 515.0], [2350.0, 513.0], [2342.0, 515.0], [2542.0, 556.0], [2550.0, 499.0], [2510.0, 502.0], [2518.0, 558.0], [2534.0, 501.0], [2454.0, 505.6666666666667], [2438.0, 547.0], [2478.0, 507.0], [2678.0, 491.0], [2630.0, 496.0], [2638.0, 542.0], [2646.0, 494.0], [2670.0, 270.5], [2662.0, 538.3333333333334], [2566.0, 525.5], [2574.0, 356.33333333333337], [2598.0, 531.5], [2654.0, 518.5], [2814.0, 491.6], [2774.0, 521.6666666666666], [2798.0, 473.0], [2702.0, 499.5], [2718.0, 383.6666666666667], [2734.0, 507.0], [2726.0, 483.5], [2934.0, 480.0], [2886.0, 461.0], [2894.0, 425.6], [2902.0, 460.0], [2910.0, 494.0], [2926.0, 498.5], [2822.0, 528.5], [2830.0, 504.2857142857143], [2838.0, 530.3333333333334], [2846.0, 467.0], [2878.0, 518.0], [2870.0, 483.6666666666667], [2862.0, 522.0], [2854.0, 495.0], [3062.0, 405.0], [3014.0, 502.6666666666667], [3022.0, 223.0], [3030.0, 414.00000000000006], [3046.0, 484.4], [3006.0, 447.5], [2950.0, 471.0], [2958.0, 481.7142857142857], [2966.0, 353.25], [2974.0, 481.0], [2990.0, 458.6666666666667], [2982.0, 484.0], [3190.0, 439.0], [3198.0, 413.0740740740742], [3150.0, 429.5], [3142.0, 436.90000000000003], [3158.0, 481.6666666666667], [3166.0, 380.5757575757575], [3182.0, 435.81818181818187], [3174.0, 420.15789473684214], [3078.0, 434.0], [3094.0, 454.0], [3126.0, 391.5], [3118.0, 336.22222222222223], [3110.0, 439.28571428571433], [2151.0, 586.0], [2167.0, 551.0], [2159.0, 587.0], [2135.0, 547.3333333333334], [2111.0, 547.6666666666666], [2063.0, 530.0], [2095.0, 594.0], [2087.0, 591.0], [2143.0, 587.0], [2191.0, 522.0], [2255.0, 536.0], [2279.0, 592.3333333333334], [2239.0, 519.3333333333334], [2199.0, 522.0], [2207.0, 522.0], [2231.0, 519.3333333333334], [2223.0, 521.0], [2215.0, 554.0], [2271.0, 573.25], [2431.0, 567.0], [2335.0, 564.0], [2375.0, 546.0], [2383.0, 546.5], [2415.0, 508.0], [2327.0, 537.3333333333334], [2367.0, 530.0], [2359.0, 545.3333333333334], [2535.0, 547.6666666666666], [2559.0, 553.0], [2503.0, 541.0], [2519.0, 558.0], [2527.0, 531.25], [2463.0, 506.0], [2447.0, 507.0], [2487.0, 549.3333333333334], [2479.0, 560.0], [2471.0, 562.0], [2631.0, 523.3333333333334], [2687.0, 490.0], [2639.0, 540.0], [2647.0, 496.0], [2671.0, 492.0], [2591.0, 525.6], [2575.0, 505.0], [2623.0, 496.0], [2791.0, 484.5], [2807.0, 506.0], [2815.0, 87.0], [2759.0, 478.0], [2775.0, 497.5], [2783.0, 516.0], [2751.0, 480.0], [2695.0, 501.0], [2711.0, 521.3333333333334], [2719.0, 485.0], [2743.0, 480.5], [2735.0, 530.0], [2927.0, 473.5], [2943.0, 497.5], [2887.0, 548.0], [2895.0, 397.25], [2911.0, 458.0], [2935.0, 542.0], [2919.0, 459.0], [2879.0, 523.25], [2823.0, 469.0], [2831.0, 469.5], [2847.0, 467.0], [2863.0, 491.0], [2855.0, 466.0], [3071.0, 437.0], [3063.0, 466.2857142857143], [3015.0, 464.6666666666667], [3023.0, 454.3333333333333], [3031.0, 444.0], [3039.0, 444.2], [3047.0, 416.0], [2951.0, 481.5], [2959.0, 450.0], [2975.0, 465.5], [2999.0, 302.6], [2983.0, 459.3333333333333], [3191.0, 430.25], [3199.0, 412.1627906976744], [3151.0, 429.0], [3159.0, 483.0], [3183.0, 395.28571428571433], [3175.0, 434.0], [3135.0, 463.0], [3079.0, 450.0], [3087.0, 438.0], [3095.0, 477.0], [3103.0, 453.0], [3127.0, 432.0], [3119.0, 443.5], [3111.0, 468.0], [1.0, 804.0]], "isOverall": false, "label": "HTTP请求长链接转短链接", "isController": false}, {"data": [[3198.4254082925186, 569.2001255803657]], "isOverall": false, "label": "HTTP请求长链接转短链接-Aggregated", "isController": false}], "supportsControllersDiscrimination": true, "maxX": 3200.0, "title": "Time VS Threads"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    axisLabel: "Number of active threads",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average response times in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: { noColumns: 2,show: true, container: '#legendTimeVsThreads' },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s: At %x.2 active threads, Average response time was %y.2 ms"
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesTimeVsThreads"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotTimesVsThreads"), dataset, options);
            // setup overview
            $.plot($("#overviewTimesVsThreads"), dataset, prepareOverviewOptions(options));
        }
};

// Time vs threads
function refreshTimeVsThreads(){
    var infos = timeVsThreadsInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyTimeVsThreads");
        return;
    }
    if(isGraph($("#flotTimesVsThreads"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesTimeVsThreads");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotTimesVsThreads", "#overviewTimesVsThreads");
        $('#footerTimeVsThreads .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var bytesThroughputOverTimeInfos = {
        data : {"result": {"minY": 427448.63333333336, "minX": 1.64865126E12, "maxY": 1833943.8166666667, "series": [{"data": [[1.64865138E12, 1595231.4833333334], [1.64865186E12, 1364908.2], [1.64865168E12, 1833943.8166666667], [1.64865126E12, 529895.0], [1.64865174E12, 1580689.1166666667], [1.64865156E12, 1573033.3833333333], [1.64865162E12, 1596899.4833333334], [1.64865144E12, 1727828.2666666666], [1.6486515E12, 1561339.3], [1.64865132E12, 1683818.3333333333], [1.6486518E12, 1750616.0333333334]], "isOverall": false, "label": "Bytes received per second", "isController": false}, {"data": [[1.64865138E12, 1287427.9], [1.64865186E12, 1102176.9], [1.64865168E12, 1480628.6], [1.64865126E12, 427448.63333333336], [1.64865174E12, 1276086.1666666667], [1.64865156E12, 1269378.7333333334], [1.64865162E12, 1288726.6333333333], [1.64865144E12, 1394512.9], [1.6486515E12, 1260727.2333333334], [1.64865132E12, 1359527.7666666666], [1.6486518E12, 1413380.8333333333]], "isOverall": false, "label": "Bytes sent per second", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.64865186E12, "title": "Bytes Throughput Over Time"}},
        getOptions : function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity) ,
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Bytes / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendBytesThroughputOverTime'
                },
                selection: {
                    mode: "xy"
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y"
                }
            };
        },
        createGraph : function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesBytesThroughputOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotBytesThroughputOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewBytesThroughputOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Bytes throughput Over Time
function refreshBytesThroughputOverTime(fixTimestamps) {
    var infos = bytesThroughputOverTimeInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotBytesThroughputOverTime"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesBytesThroughputOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotBytesThroughputOverTime", "#overviewBytesThroughputOverTime");
        $('#footerBytesThroughputOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
}

var responseTimesOverTimeInfos = {
        data: {"result": {"minY": 358.5851819700161, "minX": 1.64865126E12, "maxY": 614.4981652520916, "series": [{"data": [[1.64865138E12, 602.2429158168892], [1.64865186E12, 543.20013759437], [1.64865168E12, 522.592547494131], [1.64865126E12, 358.5851819700161], [1.64865174E12, 606.8534443794919], [1.64865156E12, 610.4094788416472], [1.64865162E12, 600.6470194260776], [1.64865144E12, 554.4420804808213], [1.6486515E12, 614.4981652520916], [1.64865132E12, 568.0970383270035], [1.6486518E12, 547.4351801384045]], "isOverall": false, "label": "HTTP请求长链接转短链接", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.64865186E12, "title": "Response Time Over Time"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average response time in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimesOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Average response time was %y ms"
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesResponseTimesOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimesOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewResponseTimesOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Response Times Over Time
function refreshResponseTimeOverTime(fixTimestamps) {
    var infos = responseTimesOverTimeInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyResponseTimeOverTime");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotResponseTimesOverTime"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesResponseTimesOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimesOverTime", "#overviewResponseTimesOverTime");
        $('#footerResponseTimesOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var latenciesOverTimeInfos = {
        data: {"result": {"minY": 337.59755234527626, "minX": 1.64865126E12, "maxY": 614.4292734270463, "series": [{"data": [[1.64865138E12, 602.1749013931812], [1.64865186E12, 543.1349120091262], [1.64865168E12, 522.5307247656012], [1.64865126E12, 337.59755234527626], [1.64865174E12, 606.7842185944289], [1.64865156E12, 610.3386099478117], [1.64865162E12, 600.5776182323951], [1.64865144E12, 554.3753033287333], [1.6486515E12, 614.4292734270463], [1.64865132E12, 568.0302664407905], [1.6486518E12, 547.3682100306943]], "isOverall": false, "label": "HTTP请求长链接转短链接", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.64865186E12, "title": "Latencies Over Time"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average response latencies in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendLatenciesOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Average latency was %y ms"
                }
            };
        },
        createGraph: function () {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesLatenciesOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotLatenciesOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewLatenciesOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Latencies Over Time
function refreshLatenciesOverTime(fixTimestamps) {
    var infos = latenciesOverTimeInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyLatenciesOverTime");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotLatenciesOverTime"))) {
        infos.createGraph();
    }else {
        var choiceContainer = $("#choicesLatenciesOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotLatenciesOverTime", "#overviewLatenciesOverTime");
        $('#footerLatenciesOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var connectTimeOverTimeInfos = {
        data: {"result": {"minY": 0.0034268778364360134, "minX": 1.64865126E12, "maxY": 5.123439549344706, "series": [{"data": [[1.64865138E12, 0.004022594197314031], [1.64865186E12, 0.004545005434245755], [1.64865168E12, 0.0034268778364360134], [1.64865126E12, 5.123439549344706], [1.64865174E12, 0.00424166758853921], [1.64865156E12, 0.004708917711504045], [1.64865162E12, 0.003927778942723368], [1.64865144E12, 0.0038988046172489916], [1.6486515E12, 0.0036726950479402656], [1.64865132E12, 0.003791463570205869], [1.6486518E12, 0.0038553185417707367]], "isOverall": false, "label": "HTTP请求长链接转短链接", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.64865186E12, "title": "Connect Time Over Time"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getConnectTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average Connect Time in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendConnectTimeOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Average connect time was %y ms"
                }
            };
        },
        createGraph: function () {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesConnectTimeOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotConnectTimeOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewConnectTimeOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Connect Time Over Time
function refreshConnectTimeOverTime(fixTimestamps) {
    var infos = connectTimeOverTimeInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyConnectTimeOverTime");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotConnectTimeOverTime"))) {
        infos.createGraph();
    }else {
        var choiceContainer = $("#choicesConnectTimeOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotConnectTimeOverTime", "#overviewConnectTimeOverTime");
        $('#footerConnectTimeOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var responseTimePercentilesOverTimeInfos = {
        data: {"result": {"minY": 0.0, "minX": 1.64865126E12, "maxY": 2062.0, "series": [{"data": [[1.64865138E12, 1112.0], [1.64865186E12, 1133.0], [1.64865168E12, 1266.0], [1.64865126E12, 2062.0], [1.64865174E12, 1184.0], [1.64865156E12, 1279.0], [1.64865162E12, 1220.0], [1.64865144E12, 1298.0], [1.6486515E12, 1334.0], [1.64865132E12, 1620.0], [1.6486518E12, 1096.0]], "isOverall": false, "label": "Max", "isController": false}, {"data": [[1.64865138E12, 851.0], [1.64865186E12, 585.0], [1.64865168E12, 817.0], [1.64865126E12, 447.0], [1.64865174E12, 848.0], [1.64865156E12, 957.0], [1.64865162E12, 840.0], [1.64865144E12, 767.0], [1.6486515E12, 823.0], [1.64865132E12, 778.0], [1.6486518E12, 793.0]], "isOverall": false, "label": "90th percentile", "isController": false}, {"data": [[1.64865138E12, 957.0], [1.64865186E12, 816.9900000000016], [1.64865168E12, 938.0], [1.64865126E12, 631.0], [1.64865174E12, 986.0], [1.64865156E12, 1115.0], [1.64865162E12, 953.0], [1.64865144E12, 870.0], [1.6486515E12, 938.0], [1.64865132E12, 891.0], [1.6486518E12, 913.0]], "isOverall": false, "label": "99th percentile", "isController": false}, {"data": [[1.64865138E12, 890.9500000000007], [1.64865186E12, 651.0], [1.64865168E12, 861.0], [1.64865126E12, 517.0], [1.64865174E12, 897.0], [1.64865156E12, 1013.9500000000007], [1.64865162E12, 879.0], [1.64865144E12, 801.0], [1.6486515E12, 864.0], [1.64865132E12, 816.0], [1.6486518E12, 830.0]], "isOverall": false, "label": "95th percentile", "isController": false}, {"data": [[1.64865138E12, 0.0], [1.64865186E12, 0.0], [1.64865168E12, 0.0], [1.64865126E12, 0.0], [1.64865174E12, 0.0], [1.64865156E12, 0.0], [1.64865162E12, 0.0], [1.64865144E12, 0.0], [1.6486515E12, 0.0], [1.64865132E12, 0.0], [1.6486518E12, 0.0]], "isOverall": false, "label": "Min", "isController": false}, {"data": [[1.64865138E12, 681.0], [1.64865186E12, 469.0], [1.64865168E12, 690.0], [1.64865126E12, 321.0], [1.64865174E12, 678.0], [1.64865156E12, 722.0], [1.64865162E12, 706.0], [1.64865144E12, 631.0], [1.6486515E12, 689.0], [1.64865132E12, 665.0], [1.6486518E12, 686.0]], "isOverall": false, "label": "Median", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.64865186E12, "title": "Response Time Percentiles Over Time (successful requests only)"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true,
                        fill: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Response Time in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimePercentilesOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Response time was %y ms"
                }
            };
        },
        createGraph: function () {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesResponseTimePercentilesOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimePercentilesOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewResponseTimePercentilesOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Response Time Percentiles Over Time
function refreshResponseTimePercentilesOverTime(fixTimestamps) {
    var infos = responseTimePercentilesOverTimeInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotResponseTimePercentilesOverTime"))) {
        infos.createGraph();
    }else {
        var choiceContainer = $("#choicesResponseTimePercentilesOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimePercentilesOverTime", "#overviewResponseTimePercentilesOverTime");
        $('#footerResponseTimePercentilesOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};


var responseTimeVsRequestInfos = {
    data: {"result": {"minY": 252.0, "minX": 1378.0, "maxY": 1178.0, "series": [{"data": [[11249.0, 295.0], [1378.0, 679.0], [3284.0, 1178.0], [3886.0, 744.0], [4272.0, 756.0], [4392.0, 770.0], [4500.0, 679.5], [4428.0, 742.0], [4512.0, 835.0], [4520.0, 730.0], [4496.0, 682.0], [4408.0, 804.0], [4636.0, 832.0], [4728.0, 723.0], [4800.0, 727.0], [4812.0, 705.0], [4724.0, 747.5], [4780.0, 671.0], [4676.0, 665.0], [4756.0, 723.0], [4852.0, 728.0], [4900.0, 702.0], [4876.0, 667.0], [5064.0, 670.0], [4976.0, 638.0], [4864.0, 695.0], [4928.0, 703.0], [5104.0, 661.0], [4996.0, 718.0], [4912.0, 688.0], [4888.0, 710.0], [4880.0, 681.0], [5012.0, 681.0], [5024.0, 680.0], [5048.0, 675.0], [5052.0, 625.0], [5044.0, 630.0], [5364.0, 626.0], [5284.0, 634.0], [5316.0, 619.0], [5356.0, 607.0], [5352.0, 649.0], [5332.0, 657.0], [5312.0, 616.0], [5292.0, 650.0], [5288.0, 699.0], [5164.0, 641.0], [5208.0, 676.0], [5120.0, 660.0], [5156.0, 682.0], [5160.0, 668.0], [5372.0, 698.0], [5628.0, 649.0], [5500.0, 594.0], [5512.0, 598.0], [5516.0, 638.0], [5532.0, 601.0], [5560.0, 629.0], [5548.0, 586.0], [5552.0, 604.0], [5604.0, 651.0], [5624.0, 626.0], [5564.0, 600.0], [5408.0, 587.0], [5388.0, 618.0], [5472.0, 626.0], [5484.0, 618.0], [5468.0, 631.0], [5460.0, 554.0], [5448.0, 591.0], [5452.0, 634.0], [5588.0, 564.0], [5428.0, 623.0], [5576.0, 604.0], [5412.0, 637.0], [5420.0, 588.0], [5692.0, 597.0], [5816.0, 607.0], [5864.0, 579.0], [5856.0, 595.0], [5756.0, 592.0], [5696.0, 638.0], [5700.0, 591.0], [5720.0, 589.0], [5724.0, 586.0], [5752.0, 589.0], [5868.0, 648.0], [5880.0, 570.0], [5808.0, 613.0], [5800.0, 607.0], [5796.0, 613.0], [5772.0, 580.0], [5792.0, 596.0], [5760.0, 628.0], [5636.0, 632.0], [5640.0, 599.0], [5632.0, 615.0], [5672.0, 604.0], [5688.0, 624.0], [5676.0, 596.0], [5684.0, 620.0], [5908.0, 577.0], [5900.0, 624.0], [6028.0, 584.0], [5964.0, 545.0], [6032.0, 576.0], [6072.0, 566.0], [6540.0, 450.0], [6648.0, 513.0], [6660.0, 476.0], [6728.0, 535.0], [7088.0, 462.0], [6952.0, 450.0], [6912.0, 511.0], [7364.0, 454.0], [7244.0, 468.0], [7400.0, 422.0], [7404.0, 454.0], [7296.0, 454.0], [7368.0, 447.0], [7216.0, 465.0], [7536.0, 455.0], [7796.0, 439.0], [7776.0, 422.0], [7764.0, 423.0], [7696.0, 432.0], [8012.0, 433.0], [7960.0, 436.0], [10128.0, 307.0], [10488.0, 290.0], [11832.0, 290.0], [11427.0, 252.0], [4157.0, 1006.0], [4329.0, 761.0], [4429.0, 774.0], [4373.0, 804.0], [4505.0, 750.0], [4585.0, 707.0], [4497.0, 729.0], [4653.0, 692.0], [4729.0, 706.0], [4785.0, 696.0], [4901.0, 673.0], [5081.0, 654.0], [4949.0, 675.0], [4945.0, 707.0], [4985.0, 685.0], [4877.0, 749.0], [5117.0, 677.0], [5085.0, 692.0], [5101.0, 628.0], [4917.0, 683.0], [5069.0, 629.0], [5061.0, 637.0], [4897.0, 668.0], [5021.0, 667.0], [5029.0, 646.0], [5025.0, 628.0], [5033.0, 602.0], [4997.0, 659.0], [5009.0, 673.0], [5017.0, 601.0], [4869.0, 710.0], [4989.0, 725.0], [5181.0, 666.0], [5289.0, 623.0], [5273.0, 643.0], [5257.0, 662.0], [5373.0, 601.0], [5269.0, 644.0], [5309.0, 613.0], [5173.0, 625.0], [5237.0, 670.0], [5153.0, 642.0], [5233.0, 661.0], [5213.0, 628.0], [5229.0, 677.0], [5217.0, 657.0], [5349.0, 705.0], [5353.0, 621.0], [5357.0, 726.0], [5341.0, 671.0], [5321.0, 645.0], [5325.0, 644.0], [5613.0, 607.0], [5513.0, 630.0], [5521.0, 608.0], [5561.0, 638.0], [5381.0, 672.0], [5457.0, 620.0], [5441.0, 626.0], [5445.0, 641.0], [5453.0, 622.0], [5481.0, 616.0], [5489.0, 580.0], [5497.0, 620.0], [5577.0, 600.0], [5597.0, 581.0], [5569.0, 593.0], [5429.0, 630.0], [5573.0, 627.0], [5849.0, 595.0], [5817.0, 565.0], [5797.0, 604.0], [5769.0, 605.0], [5781.0, 615.0], [5765.0, 633.0], [5881.0, 578.0], [5885.0, 597.0], [5865.0, 611.0], [5729.0, 591.0], [5697.0, 647.0], [5741.0, 621.0], [5753.0, 596.0], [5745.0, 619.0], [5637.0, 657.0], [5693.0, 589.0], [5653.0, 649.0], [5897.0, 570.0], [5977.0, 594.0], [6097.0, 503.0], [5909.0, 598.0], [5953.0, 598.0], [5965.0, 574.0], [5985.0, 577.0], [6101.0, 514.0], [5905.0, 532.0], [6325.0, 524.0], [6865.0, 487.0], [6697.0, 504.0], [6673.0, 461.0], [6753.0, 494.0], [7141.0, 457.0], [7105.0, 462.0], [7157.0, 440.0], [7025.0, 475.0], [7133.0, 466.0], [7385.0, 456.0], [7273.0, 436.0], [7345.0, 424.0], [7401.0, 455.0], [7309.0, 457.0], [7513.0, 420.0], [7529.0, 444.0], [7621.0, 447.0], [7477.0, 444.0], [7437.0, 428.0], [7781.0, 424.0], [7797.0, 393.0], [7765.0, 440.0], [7813.0, 451.0], [7713.0, 455.0], [7697.0, 455.0], [8021.0, 403.0], [9090.0, 339.0], [3537.0, 955.0], [3739.0, 787.0], [4047.0, 895.0], [4302.0, 748.0], [4230.0, 822.0], [4374.0, 732.0], [4466.0, 794.0], [4378.0, 719.0], [4554.0, 796.0], [4414.0, 712.0], [4510.0, 791.0], [4398.0, 827.0], [4490.0, 708.5], [4426.0, 686.0], [4810.0, 712.0], [4630.0, 682.0], [4650.0, 758.0], [4674.0, 698.0], [4726.0, 692.0], [4658.0, 735.0], [4670.0, 727.0], [4826.0, 681.0], [4838.0, 639.0], [4822.0, 689.0], [4770.0, 693.0], [4750.0, 716.0], [4738.0, 750.0], [4846.0, 715.0], [5062.0, 643.0], [4914.0, 667.0], [5074.0, 653.0], [4970.0, 667.0], [4982.0, 664.0], [4990.0, 673.0], [5102.0, 634.0], [5106.0, 586.0], [5098.0, 599.0], [4998.0, 722.0], [5002.0, 687.0], [5006.0, 720.0], [5090.0, 636.0], [4886.0, 709.0], [4878.0, 693.0], [4870.0, 697.0], [5258.0, 630.0], [5354.0, 624.0], [5342.0, 603.0], [5278.0, 623.0], [5266.0, 630.0], [5270.0, 689.0], [5294.0, 639.0], [5290.0, 639.0], [5222.0, 633.0], [5210.0, 658.0], [5150.0, 640.0], [5238.0, 672.0], [5134.0, 612.0], [5126.0, 674.0], [5202.0, 719.0], [5206.0, 668.0], [5358.0, 597.0], [5370.0, 620.0], [5374.0, 579.0], [5250.0, 667.0], [5338.0, 637.0], [5326.0, 629.0], [5322.0, 586.0], [5426.0, 655.0], [5502.0, 585.0], [5534.0, 582.0], [5546.0, 642.0], [5522.0, 613.0], [5506.0, 632.0], [5630.0, 626.0], [5562.0, 618.0], [5550.0, 620.0], [5614.0, 533.0], [5410.0, 606.0], [5386.0, 619.0], [5390.0, 646.0], [5394.0, 604.0], [5454.0, 633.0], [5458.0, 579.0], [5450.0, 605.0], [5478.0, 618.0], [5486.0, 628.0], [5594.0, 640.0], [5610.0, 579.0], [5590.0, 632.0], [5586.0, 575.0], [5434.0, 637.0], [5418.0, 609.0], [5834.0, 597.0], [5862.0, 591.0], [5866.0, 589.0], [5830.0, 581.0], [5826.0, 596.0], [5842.0, 607.0], [5838.0, 585.0], [5722.0, 608.0], [5706.0, 626.0], [5718.0, 608.0], [5754.0, 648.0], [5878.0, 580.0], [5782.0, 576.0], [5798.0, 601.0], [5882.0, 610.0], [5770.0, 591.0], [5806.0, 577.0], [5758.0, 563.0], [5642.0, 605.0], [5690.0, 657.0], [5982.0, 588.0], [6046.0, 606.0], [5954.0, 585.0], [6034.0, 573.0], [5902.0, 563.0], [6474.0, 440.0], [6830.0, 492.0], [6962.0, 448.0], [7138.0, 489.0], [7090.0, 460.0], [6950.0, 496.0], [7214.0, 467.0], [7194.0, 455.0], [7398.0, 467.0], [7378.0, 431.0], [7174.0, 446.0], [7286.0, 456.0], [7210.0, 466.0], [7246.0, 455.0], [7602.0, 446.0], [7914.0, 448.0], [4183.0, 802.0], [4163.0, 711.0], [4295.0, 723.0], [4519.0, 789.0], [4383.0, 831.0], [4407.0, 742.0], [4387.0, 794.0], [4523.0, 746.0], [4827.0, 658.0], [4619.0, 678.0], [4683.0, 724.0], [4755.0, 734.0], [4747.0, 655.0], [4835.0, 640.0], [4727.0, 710.0], [4731.0, 810.0], [4863.0, 693.0], [4647.0, 638.0], [4643.0, 741.0], [4959.0, 689.0], [4987.0, 694.0], [4955.0, 720.0], [4971.0, 643.0], [4939.0, 696.0], [4935.0, 664.0], [4947.0, 697.0], [4943.0, 662.0], [5119.0, 595.0], [4995.0, 656.0], [5107.0, 698.0], [5083.0, 683.0], [5095.0, 676.0], [5079.0, 638.0], [5027.0, 683.0], [5035.0, 691.0], [5055.0, 736.0], [5015.0, 635.0], [5011.0, 734.0], [4867.0, 661.0], [5255.0, 646.0], [5143.0, 640.0], [5375.0, 587.0], [5247.0, 743.0], [5243.0, 644.0], [5231.0, 660.0], [5211.0, 630.0], [5139.0, 608.0], [5123.0, 626.0], [5127.0, 657.0], [5275.0, 627.0], [5287.0, 653.0], [5263.0, 666.0], [5295.0, 640.0], [5303.0, 626.0], [5159.0, 711.0], [5163.0, 724.0], [5187.0, 698.0], [5207.0, 605.0], [5367.0, 670.0], [5339.0, 634.0], [5347.0, 622.0], [5351.0, 667.0], [5171.0, 713.0], [5335.0, 662.0], [5199.0, 624.0], [5507.0, 621.0], [5599.0, 584.0], [5563.0, 581.0], [5539.0, 636.0], [5511.0, 624.0], [5555.0, 599.0], [5543.0, 633.0], [5631.0, 601.0], [5615.0, 605.0], [5395.0, 596.0], [5471.0, 630.0], [5459.0, 594.0], [5451.0, 628.0], [5487.0, 595.0], [5495.0, 631.0], [5387.0, 609.0], [5431.0, 612.0], [5583.0, 602.0], [5571.0, 603.0], [5423.0, 637.0], [5595.0, 613.0], [5843.0, 582.0], [5819.0, 630.0], [5695.0, 607.0], [5847.0, 606.0], [5875.0, 623.0], [5815.0, 604.0], [5791.0, 579.0], [5699.0, 598.0], [5751.0, 597.0], [5635.0, 640.0], [5663.0, 602.0], [5651.0, 621.0], [5659.0, 586.0], [5671.0, 598.0], [5915.0, 586.0], [5907.0, 591.0], [5983.0, 571.0], [5987.0, 607.0], [5951.0, 567.0], [5975.0, 584.0], [5947.0, 565.0], [5927.0, 593.0], [5931.0, 572.0], [6175.0, 569.0], [6827.0, 478.0], [6847.0, 528.0], [6719.0, 496.0], [6963.0, 465.0], [7003.0, 491.0], [7119.0, 461.0], [7199.0, 440.0], [7347.0, 489.0], [7383.0, 426.0], [7283.0, 446.0], [7503.0, 415.0], [7771.0, 452.0], [7927.0, 435.0], [7827.0, 421.0], [7967.0, 441.0]], "isOverall": false, "label": "Successes", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 1000, "maxX": 11832.0, "title": "Response Time Vs Request"}},
    getOptions: function() {
        return {
            series: {
                lines: {
                    show: false
                },
                points: {
                    show: true
                }
            },
            xaxis: {
                axisLabel: "Global number of requests per second",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            yaxis: {
                axisLabel: "Median Response Time in ms",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            legend: {
                noColumns: 2,
                show: true,
                container: '#legendResponseTimeVsRequest'
            },
            selection: {
                mode: 'xy'
            },
            grid: {
                hoverable: true // IMPORTANT! this is needed for tooltip to work
            },
            tooltip: true,
            tooltipOpts: {
                content: "%s : Median response time at %x req/s was %y ms"
            },
            colors: ["#9ACD32", "#FF6347"]
        };
    },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesResponseTimeVsRequest"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotResponseTimeVsRequest"), dataset, options);
        // setup overview
        $.plot($("#overviewResponseTimeVsRequest"), dataset, prepareOverviewOptions(options));

    }
};

// Response Time vs Request
function refreshResponseTimeVsRequest() {
    var infos = responseTimeVsRequestInfos;
    prepareSeries(infos.data);
    if (isGraph($("#flotResponseTimeVsRequest"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesResponseTimeVsRequest");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimeVsRequest", "#overviewResponseTimeVsRequest");
        $('#footerResponseRimeVsRequest .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};


var latenciesVsRequestInfos = {
    data: {"result": {"minY": 252.0, "minX": 1378.0, "maxY": 1178.0, "series": [{"data": [[11249.0, 295.0], [1378.0, 679.0], [3284.0, 1178.0], [3886.0, 744.0], [4272.0, 756.0], [4392.0, 770.0], [4500.0, 679.0], [4428.0, 741.5], [4512.0, 835.0], [4520.0, 730.0], [4496.0, 682.0], [4408.0, 804.0], [4636.0, 832.0], [4728.0, 723.0], [4800.0, 727.0], [4812.0, 705.0], [4724.0, 747.0], [4780.0, 671.0], [4676.0, 665.0], [4756.0, 723.0], [4852.0, 728.0], [4900.0, 702.0], [4876.0, 667.0], [5064.0, 670.0], [4976.0, 638.0], [4864.0, 695.0], [4928.0, 703.0], [5104.0, 661.0], [4996.0, 718.0], [4912.0, 688.0], [4888.0, 710.0], [4880.0, 681.0], [5012.0, 681.0], [5024.0, 680.0], [5048.0, 675.0], [5052.0, 625.0], [5044.0, 630.0], [5364.0, 626.0], [5284.0, 634.0], [5316.0, 619.0], [5356.0, 606.5], [5352.0, 649.0], [5332.0, 657.0], [5312.0, 616.0], [5292.0, 650.0], [5288.0, 699.0], [5164.0, 641.0], [5208.0, 676.0], [5120.0, 660.0], [5156.0, 682.0], [5160.0, 668.0], [5372.0, 698.0], [5628.0, 649.0], [5500.0, 594.0], [5512.0, 598.0], [5516.0, 638.0], [5532.0, 601.0], [5560.0, 629.0], [5548.0, 586.0], [5552.0, 604.0], [5604.0, 650.5], [5624.0, 626.0], [5564.0, 600.0], [5408.0, 587.0], [5388.0, 618.0], [5472.0, 626.0], [5484.0, 618.0], [5468.0, 631.0], [5460.0, 554.0], [5448.0, 591.0], [5452.0, 634.0], [5588.0, 564.0], [5428.0, 623.0], [5576.0, 604.0], [5412.0, 637.0], [5420.0, 588.0], [5692.0, 597.0], [5816.0, 607.0], [5864.0, 579.0], [5856.0, 595.0], [5756.0, 592.0], [5696.0, 638.0], [5700.0, 591.0], [5720.0, 589.0], [5724.0, 586.0], [5752.0, 589.0], [5868.0, 648.0], [5880.0, 570.0], [5808.0, 613.0], [5800.0, 607.0], [5796.0, 613.0], [5772.0, 580.0], [5792.0, 596.0], [5760.0, 628.0], [5636.0, 632.0], [5640.0, 599.0], [5632.0, 615.0], [5672.0, 604.0], [5688.0, 624.0], [5676.0, 596.0], [5684.0, 620.0], [5908.0, 577.0], [5900.0, 624.0], [6028.0, 584.0], [5964.0, 545.0], [6032.0, 576.0], [6072.0, 566.0], [6540.0, 450.0], [6648.0, 513.0], [6660.0, 476.0], [6728.0, 535.0], [7088.0, 462.0], [6952.0, 450.0], [6912.0, 511.0], [7364.0, 454.0], [7244.0, 468.0], [7400.0, 422.0], [7404.0, 454.0], [7296.0, 454.0], [7368.0, 447.0], [7216.0, 465.0], [7536.0, 455.0], [7796.0, 438.0], [7776.0, 422.0], [7764.0, 423.0], [7696.0, 432.0], [8012.0, 433.0], [7960.0, 436.0], [10128.0, 307.0], [10488.0, 290.0], [11832.0, 290.0], [11427.0, 252.0], [4157.0, 1006.0], [4329.0, 761.0], [4429.0, 774.0], [4373.0, 804.0], [4505.0, 749.0], [4585.0, 707.0], [4497.0, 729.0], [4653.0, 692.0], [4729.0, 706.0], [4785.0, 695.0], [4901.0, 673.0], [5081.0, 654.0], [4949.0, 675.0], [4945.0, 707.0], [4985.0, 685.0], [4877.0, 749.0], [5117.0, 677.0], [5085.0, 692.0], [5101.0, 628.0], [4917.0, 682.0], [5069.0, 629.0], [5061.0, 637.0], [4897.0, 668.0], [5021.0, 666.0], [5029.0, 646.0], [5025.0, 628.0], [5033.0, 602.0], [4997.0, 659.0], [5009.0, 673.0], [5017.0, 601.0], [4869.0, 710.0], [4989.0, 725.0], [5181.0, 666.0], [5289.0, 623.0], [5273.0, 643.0], [5257.0, 662.0], [5373.0, 601.0], [5269.0, 644.0], [5309.0, 613.0], [5173.0, 625.0], [5237.0, 670.0], [5153.0, 642.0], [5233.0, 661.0], [5213.0, 628.0], [5229.0, 677.0], [5217.0, 657.0], [5349.0, 705.0], [5353.0, 621.0], [5357.0, 726.0], [5341.0, 671.0], [5321.0, 645.0], [5325.0, 644.0], [5613.0, 607.0], [5513.0, 630.0], [5521.0, 608.0], [5561.0, 638.0], [5381.0, 672.0], [5457.0, 620.0], [5441.0, 625.0], [5445.0, 641.0], [5453.0, 622.0], [5481.0, 616.0], [5489.0, 580.0], [5497.0, 619.0], [5577.0, 600.0], [5597.0, 581.0], [5569.0, 592.0], [5429.0, 630.0], [5573.0, 627.0], [5849.0, 595.0], [5817.0, 564.0], [5797.0, 604.0], [5769.0, 605.0], [5781.0, 615.0], [5765.0, 633.0], [5881.0, 578.0], [5885.0, 597.0], [5865.0, 611.0], [5729.0, 591.0], [5697.0, 647.0], [5741.0, 621.0], [5753.0, 596.0], [5745.0, 619.0], [5637.0, 657.0], [5693.0, 589.0], [5653.0, 649.0], [5897.0, 570.0], [5977.0, 594.0], [6097.0, 503.0], [5909.0, 598.0], [5953.0, 598.0], [5965.0, 574.0], [5985.0, 577.0], [6101.0, 514.0], [5905.0, 531.0], [6325.0, 523.0], [6865.0, 487.0], [6697.0, 504.0], [6673.0, 461.0], [6753.0, 494.0], [7141.0, 457.0], [7105.0, 462.0], [7157.0, 440.0], [7025.0, 474.0], [7133.0, 466.0], [7385.0, 456.0], [7273.0, 436.0], [7345.0, 424.0], [7401.0, 455.0], [7309.0, 457.0], [7513.0, 420.0], [7529.0, 443.0], [7621.0, 447.0], [7477.0, 444.0], [7437.0, 428.0], [7781.0, 424.0], [7797.0, 393.0], [7765.0, 440.0], [7813.0, 451.0], [7713.0, 455.0], [7697.0, 455.0], [8021.0, 403.0], [9090.0, 339.0], [3537.0, 955.0], [3739.0, 787.0], [4047.0, 895.0], [4302.0, 748.0], [4230.0, 822.0], [4374.0, 732.0], [4466.0, 794.0], [4378.0, 719.0], [4554.0, 796.0], [4414.0, 712.0], [4510.0, 791.0], [4398.0, 827.0], [4490.0, 708.0], [4426.0, 686.0], [4810.0, 712.0], [4630.0, 682.0], [4650.0, 758.0], [4674.0, 698.0], [4726.0, 692.0], [4658.0, 735.0], [4670.0, 727.0], [4826.0, 681.0], [4838.0, 639.0], [4822.0, 689.0], [4770.0, 692.0], [4750.0, 715.5], [4738.0, 750.0], [4846.0, 715.0], [5062.0, 643.0], [4914.0, 667.0], [5074.0, 653.0], [4970.0, 667.0], [4982.0, 664.0], [4990.0, 672.0], [5102.0, 634.0], [5106.0, 586.0], [5098.0, 599.0], [4998.0, 722.0], [5002.0, 687.0], [5006.0, 720.0], [5090.0, 636.0], [4886.0, 709.0], [4878.0, 693.0], [4870.0, 697.0], [5258.0, 630.0], [5354.0, 624.0], [5342.0, 603.0], [5278.0, 623.0], [5266.0, 630.0], [5270.0, 689.0], [5294.0, 639.0], [5290.0, 639.0], [5222.0, 633.0], [5210.0, 658.0], [5150.0, 640.0], [5238.0, 672.0], [5134.0, 612.0], [5126.0, 674.0], [5202.0, 719.0], [5206.0, 668.0], [5358.0, 597.0], [5370.0, 620.0], [5374.0, 579.0], [5250.0, 667.0], [5338.0, 637.0], [5326.0, 629.0], [5322.0, 586.0], [5426.0, 655.0], [5502.0, 585.0], [5534.0, 582.0], [5546.0, 642.0], [5522.0, 613.0], [5506.0, 632.0], [5630.0, 626.0], [5562.0, 618.0], [5550.0, 620.0], [5614.0, 533.0], [5410.0, 606.0], [5386.0, 619.0], [5390.0, 646.0], [5394.0, 604.0], [5454.0, 633.0], [5458.0, 579.0], [5450.0, 605.0], [5478.0, 618.0], [5486.0, 628.0], [5594.0, 640.0], [5610.0, 579.0], [5590.0, 632.0], [5586.0, 575.0], [5434.0, 637.0], [5418.0, 609.0], [5834.0, 597.0], [5862.0, 591.0], [5866.0, 589.0], [5830.0, 581.0], [5826.0, 596.0], [5842.0, 607.0], [5838.0, 585.0], [5722.0, 608.0], [5706.0, 626.0], [5718.0, 608.0], [5754.0, 648.0], [5878.0, 580.0], [5782.0, 576.0], [5798.0, 601.0], [5882.0, 610.0], [5770.0, 591.0], [5806.0, 577.0], [5758.0, 563.0], [5642.0, 605.0], [5690.0, 657.0], [5982.0, 588.0], [6046.0, 606.0], [5954.0, 585.0], [6034.0, 573.0], [5902.0, 563.0], [6474.0, 440.0], [6830.0, 492.0], [6962.0, 448.0], [7138.0, 489.0], [7090.0, 460.0], [6950.0, 496.0], [7214.0, 467.0], [7194.0, 439.0], [7398.0, 467.0], [7378.0, 431.0], [7174.0, 446.0], [7286.0, 456.0], [7210.0, 466.0], [7246.0, 455.0], [7602.0, 446.0], [7914.0, 448.0], [4183.0, 802.0], [4163.0, 711.0], [4295.0, 723.0], [4519.0, 789.0], [4383.0, 830.0], [4407.0, 742.0], [4387.0, 794.0], [4523.0, 746.0], [4827.0, 658.0], [4619.0, 678.0], [4683.0, 724.0], [4755.0, 734.0], [4747.0, 655.0], [4835.0, 640.0], [4727.0, 710.0], [4731.0, 810.0], [4863.0, 693.0], [4647.0, 638.0], [4643.0, 740.0], [4959.0, 689.0], [4987.0, 694.0], [4955.0, 720.0], [4971.0, 643.0], [4939.0, 696.0], [4935.0, 664.0], [4947.0, 697.0], [4943.0, 662.0], [5119.0, 595.0], [4995.0, 656.0], [5107.0, 698.0], [5083.0, 683.0], [5095.0, 676.0], [5079.0, 638.0], [5027.0, 683.0], [5035.0, 691.0], [5055.0, 736.0], [5015.0, 635.0], [5011.0, 734.0], [4867.0, 661.0], [5255.0, 646.0], [5143.0, 640.0], [5375.0, 587.0], [5247.0, 743.0], [5243.0, 644.0], [5231.0, 660.0], [5211.0, 630.0], [5139.0, 608.0], [5123.0, 626.0], [5127.0, 657.0], [5275.0, 627.0], [5287.0, 653.0], [5263.0, 666.0], [5295.0, 640.0], [5303.0, 626.0], [5159.0, 711.0], [5163.0, 724.0], [5187.0, 698.0], [5207.0, 605.0], [5367.0, 670.0], [5339.0, 634.0], [5347.0, 621.0], [5351.0, 667.0], [5171.0, 713.0], [5335.0, 662.0], [5199.0, 624.0], [5507.0, 621.0], [5599.0, 584.0], [5563.0, 557.0], [5539.0, 636.0], [5511.0, 624.0], [5555.0, 599.0], [5543.0, 633.0], [5631.0, 601.0], [5615.0, 605.0], [5395.0, 596.0], [5471.0, 630.0], [5459.0, 594.0], [5451.0, 628.0], [5487.0, 595.0], [5495.0, 631.0], [5387.0, 609.0], [5431.0, 612.0], [5583.0, 602.0], [5571.0, 603.0], [5423.0, 637.0], [5595.0, 613.0], [5843.0, 582.0], [5819.0, 630.0], [5695.0, 607.0], [5847.0, 606.0], [5875.0, 622.0], [5815.0, 603.0], [5791.0, 579.0], [5699.0, 598.0], [5751.0, 597.0], [5635.0, 640.0], [5663.0, 602.0], [5651.0, 621.0], [5659.0, 586.0], [5671.0, 598.0], [5915.0, 586.0], [5907.0, 591.0], [5983.0, 571.0], [5987.0, 607.0], [5951.0, 567.0], [5975.0, 584.0], [5947.0, 565.0], [5927.0, 593.0], [5931.0, 572.0], [6175.0, 569.0], [6827.0, 478.0], [6847.0, 528.0], [6719.0, 496.0], [6963.0, 465.0], [7003.0, 491.0], [7119.0, 461.0], [7199.0, 440.0], [7347.0, 489.0], [7383.0, 426.0], [7283.0, 446.0], [7503.0, 415.0], [7771.0, 452.0], [7927.0, 435.0], [7827.0, 421.0], [7967.0, 441.0]], "isOverall": false, "label": "Successes", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 1000, "maxX": 11832.0, "title": "Latencies Vs Request"}},
    getOptions: function() {
        return{
            series: {
                lines: {
                    show: false
                },
                points: {
                    show: true
                }
            },
            xaxis: {
                axisLabel: "Global number of requests per second",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            yaxis: {
                axisLabel: "Median Latency in ms",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            legend: { noColumns: 2,show: true, container: '#legendLatencyVsRequest' },
            selection: {
                mode: 'xy'
            },
            grid: {
                hoverable: true // IMPORTANT! this is needed for tooltip to work
            },
            tooltip: true,
            tooltipOpts: {
                content: "%s : Median Latency time at %x req/s was %y ms"
            },
            colors: ["#9ACD32", "#FF6347"]
        };
    },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesLatencyVsRequest"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotLatenciesVsRequest"), dataset, options);
        // setup overview
        $.plot($("#overviewLatenciesVsRequest"), dataset, prepareOverviewOptions(options));
    }
};

// Latencies vs Request
function refreshLatenciesVsRequest() {
        var infos = latenciesVsRequestInfos;
        prepareSeries(infos.data);
        if(isGraph($("#flotLatenciesVsRequest"))){
            infos.createGraph();
        }else{
            var choiceContainer = $("#choicesLatencyVsRequest");
            createLegend(choiceContainer, infos);
            infos.createGraph();
            setGraphZoomable("#flotLatenciesVsRequest", "#overviewLatenciesVsRequest");
            $('#footerLatenciesVsRequest .legendColorBox > div').each(function(i){
                $(this).clone().prependTo(choiceContainer.find("li").eq(i));
            });
        }
};

var hitsPerSecondInfos = {
        data: {"result": {"minY": 1819.6333333333334, "minX": 1.64865126E12, "maxY": 6118.3, "series": [{"data": [[1.64865138E12, 5319.95], [1.64865186E12, 4501.116666666667], [1.64865168E12, 6118.3], [1.64865126E12, 1819.6333333333334], [1.64865174E12, 5273.083333333333], [1.64865156E12, 5245.383333333333], [1.64865162E12, 5325.333333333333], [1.64865144E12, 5762.45], [1.6486515E12, 5209.583333333333], [1.64865132E12, 5617.9], [1.6486518E12, 5840.416666666667]], "isOverall": false, "label": "hitsPerSecond", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.64865186E12, "title": "Hits Per Second"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of hits / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendHitsPerSecond"
                },
                selection: {
                    mode : 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y.2 hits/sec"
                }
            };
        },
        createGraph: function createGraph() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesHitsPerSecond"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotHitsPerSecond"), dataset, options);
            // setup overview
            $.plot($("#overviewHitsPerSecond"), dataset, prepareOverviewOptions(options));
        }
};

// Hits per second
function refreshHitsPerSecond(fixTimestamps) {
    var infos = hitsPerSecondInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if (isGraph($("#flotHitsPerSecond"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesHitsPerSecond");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotHitsPerSecond", "#overviewHitsPerSecond");
        $('#footerHitsPerSecond .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
}

var codesPerSecondInfos = {
        data: {"result": {"minY": 1766.3166666666666, "minX": 1.64865126E12, "maxY": 6118.3, "series": [{"data": [[1.64865138E12, 5319.95], [1.64865186E12, 4554.45], [1.64865168E12, 6118.3], [1.64865126E12, 1766.3166666666666], [1.64865174E12, 5273.083333333333], [1.64865156E12, 5245.366666666667], [1.64865162E12, 5325.316666666667], [1.64865144E12, 5762.45], [1.6486515E12, 5209.616666666667], [1.64865132E12, 5617.883333333333], [1.6486518E12, 5840.416666666667]], "isOverall": false, "label": "200", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.64865186E12, "title": "Codes Per Second"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of responses / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendCodesPerSecond"
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "Number of Response Codes %s at %x was %y.2 responses / sec"
                }
            };
        },
    createGraph: function() {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesCodesPerSecond"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotCodesPerSecond"), dataset, options);
        // setup overview
        $.plot($("#overviewCodesPerSecond"), dataset, prepareOverviewOptions(options));
    }
};

// Codes per second
function refreshCodesPerSecond(fixTimestamps) {
    var infos = codesPerSecondInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotCodesPerSecond"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesCodesPerSecond");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotCodesPerSecond", "#overviewCodesPerSecond");
        $('#footerCodesPerSecond .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var transactionsPerSecondInfos = {
        data: {"result": {"minY": 1766.3166666666666, "minX": 1.64865126E12, "maxY": 6118.3, "series": [{"data": [[1.64865138E12, 5319.95], [1.64865186E12, 4554.45], [1.64865168E12, 6118.3], [1.64865126E12, 1766.3166666666666], [1.64865174E12, 5273.083333333333], [1.64865156E12, 5245.366666666667], [1.64865162E12, 5325.316666666667], [1.64865144E12, 5762.45], [1.6486515E12, 5209.616666666667], [1.64865132E12, 5617.883333333333], [1.6486518E12, 5840.416666666667]], "isOverall": false, "label": "HTTP请求长链接转短链接-success", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.64865186E12, "title": "Transactions Per Second"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of transactions / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendTransactionsPerSecond"
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y transactions / sec"
                }
            };
        },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesTransactionsPerSecond"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotTransactionsPerSecond"), dataset, options);
        // setup overview
        $.plot($("#overviewTransactionsPerSecond"), dataset, prepareOverviewOptions(options));
    }
};

// Transactions per second
function refreshTransactionsPerSecond(fixTimestamps) {
    var infos = transactionsPerSecondInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyTransactionsPerSecond");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotTransactionsPerSecond"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesTransactionsPerSecond");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotTransactionsPerSecond", "#overviewTransactionsPerSecond");
        $('#footerTransactionsPerSecond .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var totalTPSInfos = {
        data: {"result": {"minY": 1766.3166666666666, "minX": 1.64865126E12, "maxY": 6118.3, "series": [{"data": [[1.64865138E12, 5319.95], [1.64865186E12, 4554.45], [1.64865168E12, 6118.3], [1.64865126E12, 1766.3166666666666], [1.64865174E12, 5273.083333333333], [1.64865156E12, 5245.366666666667], [1.64865162E12, 5325.316666666667], [1.64865144E12, 5762.45], [1.6486515E12, 5209.616666666667], [1.64865132E12, 5617.883333333333], [1.6486518E12, 5840.416666666667]], "isOverall": false, "label": "Transaction-success", "isController": false}, {"data": [], "isOverall": false, "label": "Transaction-failure", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.64865186E12, "title": "Total Transactions Per Second"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of transactions / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendTotalTPS"
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y transactions / sec"
                },
                colors: ["#9ACD32", "#FF6347"]
            };
        },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesTotalTPS"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotTotalTPS"), dataset, options);
        // setup overview
        $.plot($("#overviewTotalTPS"), dataset, prepareOverviewOptions(options));
    }
};

// Total Transactions per second
function refreshTotalTPS(fixTimestamps) {
    var infos = totalTPSInfos;
    // We want to ignore seriesFilter
    prepareSeries(infos.data, false, true);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotTotalTPS"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesTotalTPS");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotTotalTPS", "#overviewTotalTPS");
        $('#footerTotalTPS .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

// Collapse the graph matching the specified DOM element depending the collapsed
// status
function collapse(elem, collapsed){
    if(collapsed){
        $(elem).parent().find(".fa-chevron-up").removeClass("fa-chevron-up").addClass("fa-chevron-down");
    } else {
        $(elem).parent().find(".fa-chevron-down").removeClass("fa-chevron-down").addClass("fa-chevron-up");
        if (elem.id == "bodyBytesThroughputOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshBytesThroughputOverTime(true);
            }
            document.location.href="#bytesThroughputOverTime";
        } else if (elem.id == "bodyLatenciesOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshLatenciesOverTime(true);
            }
            document.location.href="#latenciesOverTime";
        } else if (elem.id == "bodyCustomGraph") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshCustomGraph(true);
            }
            document.location.href="#responseCustomGraph";
        } else if (elem.id == "bodyConnectTimeOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshConnectTimeOverTime(true);
            }
            document.location.href="#connectTimeOverTime";
        } else if (elem.id == "bodyResponseTimePercentilesOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshResponseTimePercentilesOverTime(true);
            }
            document.location.href="#responseTimePercentilesOverTime";
        } else if (elem.id == "bodyResponseTimeDistribution") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshResponseTimeDistribution();
            }
            document.location.href="#responseTimeDistribution" ;
        } else if (elem.id == "bodySyntheticResponseTimeDistribution") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshSyntheticResponseTimeDistribution();
            }
            document.location.href="#syntheticResponseTimeDistribution" ;
        } else if (elem.id == "bodyActiveThreadsOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshActiveThreadsOverTime(true);
            }
            document.location.href="#activeThreadsOverTime";
        } else if (elem.id == "bodyTimeVsThreads") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshTimeVsThreads();
            }
            document.location.href="#timeVsThreads" ;
        } else if (elem.id == "bodyCodesPerSecond") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshCodesPerSecond(true);
            }
            document.location.href="#codesPerSecond";
        } else if (elem.id == "bodyTransactionsPerSecond") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshTransactionsPerSecond(true);
            }
            document.location.href="#transactionsPerSecond";
        } else if (elem.id == "bodyTotalTPS") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshTotalTPS(true);
            }
            document.location.href="#totalTPS";
        } else if (elem.id == "bodyResponseTimeVsRequest") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshResponseTimeVsRequest();
            }
            document.location.href="#responseTimeVsRequest";
        } else if (elem.id == "bodyLatenciesVsRequest") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshLatenciesVsRequest();
            }
            document.location.href="#latencyVsRequest";
        }
    }
}

/*
 * Activates or deactivates all series of the specified graph (represented by id parameter)
 * depending on checked argument.
 */
function toggleAll(id, checked){
    var placeholder = document.getElementById(id);

    var cases = $(placeholder).find(':checkbox');
    cases.prop('checked', checked);
    $(cases).parent().children().children().toggleClass("legend-disabled", !checked);

    var choiceContainer;
    if ( id == "choicesBytesThroughputOverTime"){
        choiceContainer = $("#choicesBytesThroughputOverTime");
        refreshBytesThroughputOverTime(false);
    } else if(id == "choicesResponseTimesOverTime"){
        choiceContainer = $("#choicesResponseTimesOverTime");
        refreshResponseTimeOverTime(false);
    }else if(id == "choicesResponseCustomGraph"){
        choiceContainer = $("#choicesResponseCustomGraph");
        refreshCustomGraph(false);
    } else if ( id == "choicesLatenciesOverTime"){
        choiceContainer = $("#choicesLatenciesOverTime");
        refreshLatenciesOverTime(false);
    } else if ( id == "choicesConnectTimeOverTime"){
        choiceContainer = $("#choicesConnectTimeOverTime");
        refreshConnectTimeOverTime(false);
    } else if ( id == "choicesResponseTimePercentilesOverTime"){
        choiceContainer = $("#choicesResponseTimePercentilesOverTime");
        refreshResponseTimePercentilesOverTime(false);
    } else if ( id == "choicesResponseTimePercentiles"){
        choiceContainer = $("#choicesResponseTimePercentiles");
        refreshResponseTimePercentiles();
    } else if(id == "choicesActiveThreadsOverTime"){
        choiceContainer = $("#choicesActiveThreadsOverTime");
        refreshActiveThreadsOverTime(false);
    } else if ( id == "choicesTimeVsThreads"){
        choiceContainer = $("#choicesTimeVsThreads");
        refreshTimeVsThreads();
    } else if ( id == "choicesSyntheticResponseTimeDistribution"){
        choiceContainer = $("#choicesSyntheticResponseTimeDistribution");
        refreshSyntheticResponseTimeDistribution();
    } else if ( id == "choicesResponseTimeDistribution"){
        choiceContainer = $("#choicesResponseTimeDistribution");
        refreshResponseTimeDistribution();
    } else if ( id == "choicesHitsPerSecond"){
        choiceContainer = $("#choicesHitsPerSecond");
        refreshHitsPerSecond(false);
    } else if(id == "choicesCodesPerSecond"){
        choiceContainer = $("#choicesCodesPerSecond");
        refreshCodesPerSecond(false);
    } else if ( id == "choicesTransactionsPerSecond"){
        choiceContainer = $("#choicesTransactionsPerSecond");
        refreshTransactionsPerSecond(false);
    } else if ( id == "choicesTotalTPS"){
        choiceContainer = $("#choicesTotalTPS");
        refreshTotalTPS(false);
    } else if ( id == "choicesResponseTimeVsRequest"){
        choiceContainer = $("#choicesResponseTimeVsRequest");
        refreshResponseTimeVsRequest();
    } else if ( id == "choicesLatencyVsRequest"){
        choiceContainer = $("#choicesLatencyVsRequest");
        refreshLatenciesVsRequest();
    }
    var color = checked ? "black" : "#818181";
    if(choiceContainer != null) {
        choiceContainer.find("label").each(function(){
            this.style.color = color;
        });
    }
}

